我正在使用Ionic 4应用程序,并且在单击外部链接时正在使用Deeplink打开应用程序。
我正在使用插件:
cordova plugin add ionic-plugin-deeplinks --variable URL_SCHEME=deeplinktest --variable DEEPLINK_SCHEME=https --variable DEEPLINK_HOST=example.com --variable ANDROID_PATH_PREFIX=/
npm install @ionic-native/deeplinks
打开应用程序的代码是:
openAppFromLink() {
this.deeplinks.routeWithNavController(this.navCtrl, {
'/pageName/:id': {}
}).subscribe(match => {
if (localStorage.getItem('loggedInUser')) {
let navigationExtras: NavigationExtras = {
state: {
id: match.$args.id,
isDeeplink: true
}
};
console.log('Successfully matched route' + JSON.stringify(match));
this.router.navigateByUrl(this.router.routerState.snapshot.url + '/pageName', navigationExtras);
} else {
console.log('opening in system browser');
window.open('https://example.com', '_system');
}
}, nomatch => {
console.error('Got a deeplink that didn\'t match' + JSON.stringify(nomatch));
});
}
如果用户未在其设备上安装应用程序,我想打开网站或Playstore。
<h1><a href='deeplinktest://example.com/page/?id=3491'>Open App <a></h1>
点击上面的链接,我可以打开应用程序,但是当我没有安装应用程序时,Android设备上没有任何反应。可以使用我提到的相同链接进行管理吗?
在此块中,您必须处理错误:
nomatch => {
console.error('Got a deeplink that didn\'t match' + JSON.stringify(nomatch));
});
有一个名为In App Browser的插件,可在应用内浏览器中打开链接。安装它,然后将代码放在nomatch块中:
nomatch => {
// open the link here using In App Browser
});