How to Deep Link in Cordova, PhoneGap, and Ionic

Traditional URLs can navigate to websites, but not to apps. Mobile deep linking fixes this problem by enabling links to install, open, and pass data into your app. Deep linking will help increase discovery and overall user engagement for your app.

What Makes Deep Linking Work

Deep linking into your app is made possible by internal functionalities of the device’s operating system. After configuring your app for deep linking, both iOS and Android will allow users to navigate into your app using a custom URI Scheme like my-app-scheme://data=123. Early deep linking systems worked by wrapping these custom URI scheme links inside a standard https:// or https:// link, and then using the device’s web browser to redirect users back to your app.

Unfortunately, as of iOS 9.2, Apple has deprecated URI schemes for a more powerful method called Universal Links. Universal Links allow you to open your app directly without first having to open a mobile browser. This method is more user-friendly and more secure as your app cannot be hijacked by malicious Javascript on websites (which was possible with URI schemes). The downside: Universal Linking is harder to configure. You will need to host a custom Apple App Site Association file on your Universal Link domain (for example https://cordova.app.link/apple-app-site-association), as well as add special method calls within your app to interpret the Universal Link.

Android has also implemented a way to open the app directly with a method called App Links. App Links behave very similar to Apple’s Universal Links: you will need to host a special file on your link domain (for example https://cordova.app.link/.well-known/assetlinks.json), as well as have custom methods in your app to interpret the App Link. However, unlike iOS, Android still supports URI scheme deep linking.

Once deep linking is configured, all three methods of deep linking (URI schemes, Universal Links, App Links) will give your users a better experience as they can easily enter your app from deep links they find on the web. To learn more, keep reading or request a Branch demo

What Plugins Enable Deep Linking

Fortunately, you don’t have to set up all of this yourself. The Cordova, PhoneGap, and Ionic platforms all have plugins that help with the technical configuration.

EddyVerbruggen Driftyco Nordnet Branch
Number of downloads npm downloads for eddyverbruggen npm downloads for drifyco npm downloads for nordnet npm downloads for Branch
Free service
Supports Cordova
Supports PhoneGap
Supports Ionic
Handles URI Scheme linking [1]
Handles iOS Universal Links [2]    
Handles Android App Links [3]      
Hosts AASA and assetlinks files [4]      
Implementation in pure JavaScript [5]      
Pass any custom data from deep link into app      
Tracks install attribution      
Tracks deep link analytics with a dashboard      
Tracks users and custom events      
User referral program with credit tracking      
Create and share deep links inside the app      
Supports desktop to app deep linking [6]      
Supports linking in social media and ad platforms      
Supported by a full-time integration team      
  1. URI Schemes will open the app, but cannot pass data discretely.
  2. URI Schemes have been depreciated and replaced by Universal Links after iOS 9.2.
  3. Android App Links allow for direct app opens without needing to open the browser first.
  4. The AASA and assetlinks files are needed for Universal Links and App Links to work.
  5. Simplicity in integration. No need to modify the native iOS or Android code.
  6. Made possible with Branch’s free Text Me The App, Journeys, and Deep View features.
How To Deep Link with Branch

While all of these plugins help configure your app project, Branch also does all the heavy lifting of remote server configuration for you. Branch’s SDKs are built off multiple hooks which compile your app and prepare it for deep linking in both Android and iOS. Additionally, Branch’s Dashboard configures your links and domain files to your customizations and industry standards.

All you have to do is set up your Branch Dashboard, add a few lines in your config.xml, and add a few lines into your index.js. That is it. Integration complete. Deep linking enabled. Now you can create and share deep links based on your campaigns and content, and watch your app grow as your users become more engaged.