在android上使用ionic with deeplinks时,总是路由到rootpage

时间:2018-03-11 23:36:27

标签: android cordova ionic-framework ionic3 deep-linking

我正在尝试使用ionic(3.19.1)构建移动应用程序,我的一个需求是在应用程序中进行深层链接(路由)。 我遵循离子文档并成功创建了两个页面,当我在我的机器上使用chrome浏览器时,可以通过URL路由这些页面(离子服务)。当我尝试在Android设备上部署应用程序时,路由失败并且正在打开根页面。

更深入地研究一下,我注意到一旦在我的Android设备上打开了应用程序(无论是通过点击应用程序图标,还是通过外部链接导致应用程序中的特定路径,例如 myapp: // www.myapp.com /#/ oauthcallback /?oauth_token = Y&amp; oauth_verifier = X )uri是 file:/// andoid _assert / www / index.html 。< / p>

据我所知,这是cordova在本地为我的应用程序提供服务的位置,但为了区分不同的路由,我必须允许其他网址(特别是url参数)传递给应用程序。

我试图使用应用程序/网址,但它没有取得任何成功,任何想法都会受到欢迎!

提前致谢!

1 个答案:

答案 0 :(得分:0)

每次重定向到根页面的原因是因为它与您应用的网址方案相匹配。现在为什么它没有重定向,它有两种可能性:

  1. 路线根本不匹配。
  2. 即使路线匹配,您也必须导航到回调函数中的页面。详细说明我所说的是示例。
  3. this.deeplinks.route({ '/changePassword/:id': ChangePasswordPage }).subscribe((match) => { this.nav.setRoot(match.$route, { id: match.$args.id }) console.log('Successfully routed', match); }, (nomatch) => { console.log('Unmatched Route', nomatch); })

    要检查确实发生了什么,您可以使用console.log()放置一些chrome://inspect并在设备上检查应用,或者如果您不知道这只是在回调中添加一些警报并查看内容你到了。