Android App Links配置:实现站内点击链接不跳转APP问题排查
问题原因与缺失配置
你当前的assetlinks配置只给App授予了全量匹配URL的处理权限,缺少同域Web导航优先的权限声明,才会出现用户在官网内点击链接直接跳App的问题。
Android 12之后调整App Links规则,默认配置下的delegate_permission/common.handle_all_urls权限不会区分链接点击场景:不管用户是在域外其他应用点链接,还是已经在你的官网浏览时点同域链接,只要URL匹配App Links规则,系统就会直接唤起App,不会留在当前浏览器页面。
亚马逊的实现就是添加了同域场景优先保留Web上下文的委托声明,实现域外点击正常唤起App、域内点击不跳转的效果,和你的需求完全匹配。
修正后的完整配置
你只需要在现有配置的relation数组里补充对应权限即可,不需要新增其他条目:
[ { "relation": [ "delegate_permission/common.handle_all_urls", "delegate_permission/common.prefer_web_in_same_origin" ], "target": { "namespace": "android_app", "package_name": "com.example.com", "sha256_cert_fingerprints": [ "CA:C0:...." ] } } ]
生效逻辑
补充该声明后,系统会自动识别链接点击的上下文:
- 当用户已经在浏览器中打开你的域名站点,点击同域链接时会直接在当前网页完成导航,不会触发App唤起
- 当用户在域外场景(其他应用、短信、聊天窗口、浏览器地址栏输入等)点击匹配规则的链接时,会正常唤起你的App
- 该配置不需要额外修改网页代码或App端的intent filter规则,只要更新assetlinks.json等待系统校验通过即可生效。设备端的App Links关联校验有默认缓存,一般1天内会自动完成全量同步,测试阶段可以通过adb命令手动触发校验立即验证效果。
内容的提问来源于stack exchange,提问作者Khuffie
相关产品推荐
相关产品推荐

