Android Manifest Intent Filter冲突:避免Deep Link跳转弹窗的方案
```<intent-filter android:autoVerify="true"> <category android:name="android.intent.category.BROWSABLE" /> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <data android:host="@string/tve_host" android:scheme="https" /> </intent-filter>
步骤2:配置域名验证文件
在你的域名根目录下创建.well-known/assetlinks.json文件,内容包含你的应用包名和签名指纹,示例如下:
[{ "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "com.your.package.name", "sha256_cert_fingerprints": ["你的应用签名SHA256指纹"] } }]
你可以通过Android Studio的Build > Generate Signed Bundle/APK流程获取签名指纹,或者使用命令行工具生成。
配置完成后,系统会自动验证你的域名与应用的关联,之后点击对应链接会直接打开应用,不会弹出选择器。
总结
- 如果只是临时解决单个路径的冲突,**方案1(设置优先级)**最快捷;
- 如果需要长期维护多个深度链接路径,**方案2(统一入口转发)**是最稳妥、扩展性最强的选择;
- 如果你的应用面向高版本用户且有域名控制权,**方案3(App Links)**能提供最佳的用户体验。
内容的提问来源于stack exchange,提问作者Psest328




