Chrome intents are the deep linking replacement for URI schemes on the Android device within the Chrome browser. Instead of assigning window.location or an iframe.src to the URI scheme, in Chrome, you’ll need to use their intent string as defined in this document. While it adds complexity, the Chrome intent is actually a powerful tool since it automatically handles the case of the mobile app not being installed. Here’s the redirect logic baked into the Chrome intent:
- Open app via URI scheme if installed
- Fall back to Play Store page if not installed
- [Optional] Specify a URL to fall back to, instead of Play Store if not installed
- URI scheme [required]: This is the scheme that was configured above. Eg. Pinterest
- App package name [required]: This is the package name of the app, as configured for the project.
- URI path [optional]: This is an optional string to add which allows you to customize the path. For example, let’s say you wanted to route to pinterest://cats/1234. ‘cats/1234’ would be the URI path. You could then insert ‘cats/1234’ into the path section of the intent string. If not, leave empty.
- Fallback URL [optional]: This is an optional field where you can specify a URL encoded website URL to fallback to if the app is not installed. The default option if not specified is to open the Play Store app page. If you don’t use this variable, just remove the whole ‘S.browser_fallback_url=’ part of the intent string.
This means that if you use the Chrome intent, you do not need to handle the case of the app not being installed like you do with the URI scheme.
Configuring Chrome Intents
Configuring your app for a Chrome intent is the same as configuring for a URI scheme, since Chrome uses it under the hood. You need to pick an Activity within your app that you’d like to open when the URI scheme is triggered and register an intent filter for it. Add the following code within the
You can change your_uri_scheme to the URI scheme that you’d like. Ideally, you want this to be unique. If it overlaps with another app’s URI scheme, the user will see an Android chooser when clicking on the link. You see this often when you have multiple browsers installed, as they all register for the HTTP URI.
In Chrome, you cannot use the basic URI scheme to open up the app; instead you will need to issue the formatted Chrome intent string. Here’s an example Chrome intent structure:
‘intent://path#Intent;scheme=URI Scheme;package=package name;S.browser_fallback_url=fallback url‘
Here are the variables you can use for the string: