深度链接有时会打开错误的活动
Posted
技术标签:
【中文标题】深度链接有时会打开错误的活动【英文标题】:Deep linking sometimes opens wrong activity 【发布时间】:2020-05-08 14:46:18 【问题描述】:我们在深度链接方面遇到了一些问题。我们有两个深度链接提供商。 Firebase 和分支。我们的用户遇到问题,他们单击 Firebase 链接,假设打开活动 A,但它打开了活动 B(用于分支)。不幸的是,我们无法重现它,但它发生在我们的一些用户身上。当这种情况发生时,它们总是可以重现的。
这是我们的 Firebase 设置
<activity android:name=".activity.FirebaseActivity"
android:screenOrientation="portrait">
<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="firebase.page.link"
android:scheme="https" />
</intent-filter>
</activity>
对于分支:
<!-- Branch URI scheme -->
<intent-filter>
<data
android:host="open"
android:scheme="branch" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
<!-- Branch App Links -->
<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="branch.app.link"
android:scheme="https" />
</intent-filter>
</activity>
【问题讨论】:
【参考方案1】:终于找到了导致这个问题的问题。
我们的动态链接域为 firebase-dynamic-domain.page.link。但是,在某些情况下,当用户被重定向到应用程序时,链接显示为
https://your-project.firebaseapp.com&...
而不是
https://firebase-dynamic-domain.page.link?link=https://your-project.firebaseapp.com&...
要解决此问题,您也可以为过滤器添加项目名称域或在启动器活动中捕获此问题
<activity android:name=".activity.FirebaseActivity"
android:screenOrientation="portrait">
<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="firebase.page.link"
android:scheme="https" />
</intent-filter>
<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="your-project.firebaseapp.com"
android:scheme="https" />
</intent-filter>
</activity>
【讨论】:
【参考方案2】:这里有个分店-
我们从未遇到过这个问题。 Firebase 和 Branch 可以完美地并行工作。如果您单击分支链接,它将打开相应的活动。由于您没有全面发生这种情况,我建议您重新检查配置,看看是否存在观察到这种情况的模式,并尝试从您的端复制它。
【讨论】:
以上是关于深度链接有时会打开错误的活动的主要内容,如果未能解决你的问题,请参考以下文章
Android 8.0+ 深度链接仅在应用程序被杀死时才首先打开启动器活动
在子中访问打开的工作簿有时会生成错误 1004“对象 '_Global' 的 'Sheets' 方法未失败”