Ionic 4深度链接-如果未安装应用程序,则启动网站

问题描述 投票:1回答:1

我正在使用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设备上没有任何反应。可以使用我提到的相同链接进行管理吗?

android cordova ionic-framework ionic4 deep-linking
1个回答
0
投票

在此块中,您必须处理错误:

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
});
© www.soinside.com 2019 - 2024. All rights reserved.