TalkJS has been designed from the ground to work well in mobile web browsers and inside mobile apps (using a Webview).

TalkJS is responsive, so if your app is as well, the most of it should just work great out of the box. This page lists some ways you can improve the user experience on mobile.

Fixing the viewport

For more native-like user experiences on mobile devices, we recommend fixing the width and height of the viewport, so that the chat fills the screen perfectly. Additionally, you probably want to disable zoom so that touch interactions become as fast as in native apps (most mobile browsers add a 300ms tap delay unless you disable zoom).

The code below accomplishes both these steps.

<meta name="viewport" 
      content="width=device-width, height=device-height, initial-scale=1.0, user-scalable=no"/>

Note: On iOS 10+, Safari will not actually disable zoom with this setting, but it will still support immediate touch interactions.

Mobile push notifications

If you embed TalkJS into a native app using Webviews, you can use our support for mobile push notifications as described here.

Cordova, PhoneGap and Ionic

TalkJS has been designed to work well inside Cordova-based apps, and you ought to be able to follow the usual web-based integration steps.

However, you need to add a few little settings to make everything work smoothly:

1. Whitelist TalkJS

On some platforms, you need to whitelist the TalkJS URIs to be able to load TalkJS.

  1. Install cordova-plugin-whitelist, and scroll down to the section about Content Security Policies.
  2. Add a Content Security Policy which allows access to https://*
  3. We depend on Google Cloud for the file sharing feature. If you use file sharing, also add

By default, Cordova will open all links inside your app, which includes external links that your users may share amongst each other. If you don't want that, install cordova-plugin-inappbrowser. Don't worry about the plugin's confusing name, it includes a feature to avoid using an in-app browser :-)

TalkJS will automatically detect the presence of this plugin and ensure that external links are opened in the device's system browser.