我知道在过去的几周和几个月里,深度链接和 Ionic 发生了很多事情。至少对我来说,仍然不清楚如何将所有这些放在一起并使其发挥作用。
我目前正在使用 Ionic 3.6.0
Ionic 原生的Deeplink 插件仍然存在。@Page()
但是,我的理解是,自从 Ionic 3 引入了它的装饰器后,这个插件就不再使用了,segment
可以在其中指定深度链接( )。这在浏览器中对我来说效果很好,但我无法让它在我的 android 应用程序中工作。
假设我有一个帐户激活页面:
@IonicPage({
name: 'activate-account',
segment: 'activate-account/:code',
defaultHistory: ['start'],
priority: 'off'
})
现在我想使用的帐户激活链接目前看起来像这样:https://my-app.com/#/activate-account/hsdlHJj2hsd32ahJsdhJS43HD
这个在浏览器中运行良好。为了让它在 android 中工作,我在 AndroidManifest.xml 中定义了一个意图:
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:host="my-app.com" android:pathPrefix="/" android:scheme="https" />
</intent-filter>
Android 确实识别出我的链接并要求我在我的应用程序中打开它。但它似乎不知何故弄错了路径,因为帐户激活页面没有打开。
我的想法是,这可能与#
添加到我的网址中的离子(角度)有关。但是将其排除在外也不会使它起作用。
有谁知道如何解决这个问题?或者,一旦我通过这个 url 打开它,如何检查/记录我的应用程序正在做什么(我使用的是 Chrome 很棒的设备检查器,但控制台日志没有显示任何相关内容)?我知道我可能可以使用 android deeplink 插件解决它,但它的用法对我来说似乎与新引入的@Page()
装饰器相矛盾。