我已经在我的应用程序中实现了深度链接,可以打开我的应用程序(如果可用),但我的应用程序在其他应用程序中打开。我希望它应该从其他应用程序中打开。
这是我的深度链接代码。
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="controller"
android:path="/productDetail"
android:scheme="lalaland" />
</intent-filter>
您受到用户执行深层链接的应用程序的支配。
恐怕这个问题没有解决办法。例如,Facebook Messenger 会破坏深层链接,导致它们在许多情况下无法使用,三星消息应用程序也是如此。
您在这里看到的是 Slack 劫持了深层链接并强制其在自己的应用程序中打开。
前几天偶然发现了这个问题,并从Android文档中找到了以下解决方案(https://developer.android.com/guide/topics/manifest/activity-element参见有关
android:launchMode
的部分)
将
android:launchMode
元素上的 singleTop
从 singleInstance
更改为 <activity>
后,通用/深层链接现在将用户移至我的应用程序中,而不是在 Slack 应用程序中打开应用程序实例.
singleTop
允许同一活动的多个实例运行,而 singleInstance
只允许一个实例运行。
这是一个老问题,但我希望这可以帮助多年后偶然发现它的其他人(像我一样)!