Ionic 3原生深层链接

时间:2017-11-20 10:23:03

标签: angular ionic-framework ionic3 deep-linking

管理为Ionic安装和设置本机深层链接模块。

应用程序即使在完全关闭的冷态下也能正常加载。

但是,我的路线并未将我带到正确的页面。它只显示应用程序的最后一页,如果它从冷状态启动应用程序,则显示主页面。

app.component.ts

Cordova-plugin-mauron85-background-geolocation

控制台日志显示:

watchPosition

app.module.ts

...
import { Deeplinks } from '@ionic-native/deeplinks';
import { Detail1Page } from '../pages/layout/app1/detail1/detail1';
...
constructor(private deeplinks: Deeplinks.........
...
this.platform.ready().then(() => {
this.splashScreen.hide();
this.deeplinks.route({
  '/item/:itemId': Detail1Page
}).subscribe((match) => {
    console.log('Successfully matched route', JSON.stringify(match));
  }, (nomatch) => {
    console.error('Got a deeplink that didn\'t match', JSON.stringify(nomatch));
  });
}
...

detail1.ts

Successfully matched route {"$args":{"itemId":"9"},"$link":{"path":"/item/9","queryString":"","fragment":"","host":"my.app.com","url":"https://my.app.com/item/9","scheme":"https"}}

非常感谢您的帮助 - 一整天都在努力:)

2 个答案:

答案 0 :(得分:1)

我昨天遇到了同样的问题......

在我的情况下,我没有在我的应用程序模块中的任何地方注册我的页面。

@NgModule({
  declarations: [
    MyPage
  ],
  imports: [
    IonicPageModule.forChild(MyPage)
  ],
  entryComponents: [
    MyPage
  ]
})
export class MyPageModule {}

对我来说,我错过了IonicPageModule.forChild参考。 这是文档页面,其中讨论了为深层链接设置页面的问题。 https://ionicframework.com/docs/api/navigation/IonicPage/#usage

答案 1 :(得分:1)

我知道为时已晚,但仍然可以为某人提供帮助。我在订阅后将重定向用户,这样,如果用户未登录,您可以添加更多逻辑,或者可以相应地更改内容

this.deeplinks.route({
  '/item/:itemId': {}
}).subscribe(match => { 
    console.log('Successfully matched route' + JSON.stringify(match));
    this.nav.push(Detail1Page, { issueId: match.$args.issueId});

  }
}, nomatch => {
  console.error('Got a deeplink that didn\'t match' + JSON.stringify(nomatch));
});