Deeplinks
This plugin handles deeplinks on iOS and Android for both custom URL scheme links and Universal App Links.
Please read the ionic plugin deeplinks docs for iOS and Android integration.
You must add universal-links
to your config.xml
and set up Apple App Site Association (AASA) for iOS and Asset Links for Android.
https://github.com/ionic-team/ionic-plugin-deeplinks
Stuck on a Cordova issue?
If you're building a serious project, you can't afford to spend hours troubleshooting. Ionic’s experts offer premium advisory services for both community plugins and premier plugins.
Installation
- Capacitor
- Cordova
- Enterprise
$ npm install ionic-plugin-deeplinks
$ npm install @awesome-cordova-plugins/deeplinks
$ ionic cap sync
$ ionic cordova plugin add ionic-plugin-deeplinks
$ npm install @awesome-cordova-plugins/deeplinks
Ionic Enterprise comes with fully supported and maintained plugins from the Ionic Team. Learn More or if you're interested in an enterprise version of this plugin Contact Us
Supported Platforms
- Android
- Browser
- iOS
Usage
React
Learn more about using Ionic Native components in React
Angular
import { Deeplinks } from '@awesome-cordova-plugins/deeplinks/ngx';
constructor(private deeplinks: Deeplinks) { }
this.deeplinks.route({
'/about-us': AboutPage,
'/universal-links-test': AboutPage,
'/products/:productId': ProductPage
}).subscribe(match => {
// match.$route - the route we matched, which is the matched entry from the arguments to route()
// match.$args - the args passed in the link
// match.$link - the full link data
console.log('Successfully matched route', match);
}, nomatch => {
// nomatch.$link - the full link data
console.error('Got a deeplink that didn\'t match', nomatch);
});
Alternatively, if you're using Ionic, there's a convenience method that takes a reference to a NavController
and handles
the actual navigation for you:
this.deeplinks
.routeWithNavController(this.navController, {
'/about-us': AboutPage,
'/products/:productId': ProductPage,
})
.subscribe(
(match) => {
// match.$route - the route we matched, which is the matched entry from the arguments to route()
// match.$args - the args passed in the link
// match.$link - the full link data
console.log('Successfully matched route', match);
},
(nomatch) => {
// nomatch.$link - the full link data
console.error("Got a deeplink that didn't match", nomatch);
}
);
See the Ionic Deeplinks Demo for an example of how to
retrieve the NavController
reference at runtime.