配置Universal Links后全部跳转浏览器,如何实现指定场景分别打开App和浏览器?
问题根源
你的配置错误出在components字段仅定义了排除规则,没有添加正向匹配规则,系统判定没有符合条件的Universal Links,因此所有链接都默认跳转到浏览器。
另外同时使用paths和components字段可能存在优先级逻辑冲突,iOS 13及以上版本会优先读取components配置,低于iOS13版本仅识别paths配置。
修正方案
1. 调整关联域文件配置
优先使用components实现规则,如果你不需要兼容iOS12及更低版本,可以直接删除paths字段避免逻辑冲突,修正后的配置示例如下:
{ "applinks": { "apps": [], "details": [ { "appID": "XX00XXXX00.com.mydomain.myapp", "components": [ // 排除锚点为no_universal_link的链接 { "#": "no_universal_link", "exclude": true }, // 排除需要永久忽略的路径,例如/page2/* { "/": "/page2/*", "exclude": true }, // 正向匹配所有其余路径 { "/": "*" } ] } ] } }
如果需要兼容iOS12及更低版本,可以保留paths字段,注意paths不支持锚点匹配,低版本下锚点排除规则不会生效:
"paths": [ "NOT /page2/*", "*" ]
2. 额外排查项
- 确认App的
Associated Domains配置中已经添加所有需要支持的域名条目,格式为applinks:www.myfakedomain.com、applinks:www.myfakedomain.net,不要遗漏对应域名 - 关联域文件修改后,测试时请卸载重装App触发系统重新拉取配置,避免缓存旧的规则导致验证失败
- 确保关联域文件部署在域名的
.well-known目录下,没有访问权限限制,返回的Content-Type为application/json
内容的提问来源于stack exchange,提问作者AbsalonF
相关产品推荐
相关产品推荐

