You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止iOS通用链接跨子域跳转时打开应用

解决iOS通用链接子域间跳转意外打开应用的问题

问题根源分析

首先得明确iOS通用链接的触发逻辑:它只看目标URL是否匹配你配置的关联域和apple-app-site-association里的路径规则,完全不关心链接的来源子域。

你现在的配置里:

  • 关联域用了*.mywebsite.com,意味着所有子域(包括subdomainA.mywebsite.com和www.mywebsite.com)都属于通用链接的覆盖范围;
  • apple-app-site-association里的applinks.paths包含了"/",也就是www.mywebsite.com的根路径完全匹配规则。

所以当用户在subdomainA的页面点击指向www.mywebsite.com的链接时,iOS会判定目标URL符合通用链接规则,直接打开应用,这就是你遇到的问题。

两种可行解决方案

方案1:缩小关联域范围(彻底解决)

如果你只需要特定子域(比如www.mywebsite.com)触发通用链接,直接把关联域里的通配符改成具体子域:

<string>webcredentials:www.mywebsite.com</string>
<string>applinks:www.mywebsite.com</string>

这样一来,subdomainA.mywebsite.com不在关联域范围内,从这个子域点击任何链接到www.mywebsite.com时,都会直接在浏览器打开,不会触发应用跳转。

如果还有其他子域需要触发通用链接,只需逐个添加即可,比如:

<string>applinks:subdomainB.mywebsite.com</string>

方案2:给特定链接添加禁用属性(灵活适配)

如果必须保留*.mywebsite.com的通配符关联域(比如多个子域都需要触发通用链接),可以在subdomainA页面的目标链接上添加iOS专属的属性,强制禁用该链接的通用跳转:

<a href="https://www.mywebsite.com/" data-apple-no-universal-links="true">HOME</a>

这个属性会告诉iOS,忽略该链接的通用链接规则,直接在当前浏览器环境打开目标URL。

补充说明

iOS本身没有内置的“根据来源子域自动禁用通用链接”的机制,它的判定逻辑只聚焦于目标URL是否匹配配置规则。所以要实现你想要的效果,只能通过上述两种方式:要么限制关联域的覆盖范围,要么在特定链接上手动禁用跳转。

内容的提问来源于stack exchange,提问作者Henry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 19:08:13