Android中Deep Link匹配异常:相似路径Intent Filter致错误启动应用
问题分析与解决方案
你的Intent Filter配置语法本身没有错误,但出现点击指定链接却启动错误App的情况,主要有两种常见原因及对应解决办法:
1. 已将App2设为该类链接的默认打开应用
如果之前第一次打开同域名下的链接时,你选择了App2并勾选了「始终使用此应用打开」,系统会留存这个默认设置,后续点击链接会直接启动App2,不再弹出应用选择对话框。
解决办法:
- 进入手机设置 → 应用 → 找到App2 → 打开默认应用设置,清除它对
https://example.com相关链接的默认关联权限; - 或直接在App2的应用信息页面,点击「清除默认操作」选项。
2. 路径匹配的兼容性优化(针对极端系统匹配异常)
虽然android:path是精确匹配路径部分(query参数?token=XYZ不会影响路径匹配逻辑),但部分Android版本的系统可能存在匹配缓存或逻辑异常。可以尝试将android:path替换为android:pathPrefix,提升匹配稳定性:
修改后的App1 Intent Filter:
<intent-filter> <action android:name="android.intent.action.VIEW" /> <data android:host="example.com" android:pathPrefix="/auth/validation/au" android:scheme="https" /> <category android:name="android.intent.category.BROWSABLE" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter>
android:pathPrefix会匹配以指定路径开头的所有链接,能更稳定地覆盖带query参数的访问场景,避免系统匹配时的异常。
内容的提问来源于stack exchange,提问作者Thái Quốc Toản
相关产品推荐
相关产品推荐

