HTML移动端跳转Kayak站点如何禁止唤起APP 保持在浏览器打开
核心原因
iOS的Universal Links、Android的App Links系统机制会触发该行为:Kayak官方已将自身域名与APP做了关联绑定,只要系统检测到用户跳转到Kayak域名且设备安装了对应APP,就会优先唤起APP或弹出打开提示,该逻辑和你当前使用的跳转方式(HTML meta跳转/PHP 3xx跳转/JS跳转)没有关联。
可行解决方案
- 方案1:追加Kayak官方禁用APP唤起参数
Kayak公开支持在跳转URL末尾追加disableAppRedirect=true查询参数,强制页面在浏览器内打开,你只需将原有跳转目标地址修改为https://www.kayak.com?disableAppRedirect=true即可,无需改动其他跳转逻辑。 - 方案2:替换为带用户手势关联的JS跳转
系统不会对用户主动触发的跳转强制启用Deep Link唤起规则,你可以放弃自动跳转,改为引导用户点击跳转,或在自动跳转前增加交互提示,参考代码如下:<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>跳转中</title> </head> <body> <p>正在为您跳转至Kayak,若未自动跳转请<a href="https://www.kayak.com?disableAppRedirect=true" rel="noreferrer noopener" target="_blank">点击此处</a></p> <script> setTimeout(() => { window.location.href = 'https://www.kayak.com?disableAppRedirect=true'; }, 1200); </script> </body> </html> - 方案3:服务端反向代理中转
如果以上方案都失效,可在你的服务端配置反向代理,拉取Kayak的页面内容后在你的站点域名下返回,此时访问域名为你的自有域名,不会触发Kayak的APP绑定规则,该方案需注意合规处理内容版权相关问题。
已验证无效的方案
- 更换跳转类型:meta自动跳转/PHP 302跳转/原生JS自动跳转都无法绕过系统级的Deep Link检测,原理上无法生效
- 修改客户端UA标识:APP唤起规则和UA参数无关,修改UA不会改变触发逻辑
内容的提问来源于stack exchange,提问作者dor7dev
相关产品推荐
相关产品推荐

