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

iOS端Chrome v128.0.6613.98中带Deeplink的Web应用报错问题

iOS Chrome v128中Firebase动态链接未装App时弹出应用跳转对话框的问题分析与解决

问题原因

  • Chrome v128对iOS平台的App唤醒检测逻辑做了更新:即使Firebase动态链接配置了网页 fallback,Chrome仍会优先触发App跳转的授权提示,而非直接执行fallback逻辑。
  • Firebase动态链接的原生逻辑是先尝试唤醒App,失败后再跳转网页,但新版本Chrome的检测机制更激进,在App唤醒失败前就弹出了「打开另一应用」的对话框,导致用户看到错误提示后才能进入网页。

解决方法

1. 自定义App唤醒逻辑替代Firebase自动跳转

放弃直接使用Firebase动态链接的自动跳转,改用前端JS手动处理唤醒与fallback,避免触发Chrome的默认检测:

function handleDeepLink() {
  const appScheme = "your-app-scheme://target-path"; // 替换为你的App Scheme
  const fallbackUrl = "https://your-web-app.com/target-path"; // 替换为网页地址
  const wakeupTimeout = 1000;

  // 记录唤醒开始时间
  const start = Date.now();
  // 尝试唤醒App
  window.location.href = appScheme;

  // 超时后判断是否唤醒成功,未成功则跳转网页
  setTimeout(() => {
    if (Date.now() - start < wakeupTimeout + 200) {
      window.location.href = fallbackUrl;
    }
  }, wakeupTimeout);
}

将原页面中指向Firebase动态链接的元素,改为触发这个函数(比如<button onclick="handleDeepLink()">打开应用/网页</button>)。

2. 针对Chrome iOS做特殊处理

通过用户代理判断是否为Chrome iOS,直接跳过App唤醒步骤,直接跳转网页:

const userAgent = navigator.userAgent;
if (/CriOS/.test(userAgent)) {
  // 对于Chrome iOS用户,直接跳转网页fallback地址
  window.location.href = "https://your-web-app.com/target-path";
} else {
  // 其他浏览器正常使用Firebase动态链接
  window.location.href = "your-firebase-dynamic-link-url";
}

3. 检查并修复Universal Links配置

确认你的App的Universal Links配置完全正确:

  • 苹果开发者后台已配置对应的关联域名
  • 网站根目录的apple-app-site-association文件内容正确且可访问
  • Firebase控制台中已正确关联App的Universal Links信息
    正确的配置能让Chrome更准确地识别App是否已安装,减少错误的跳转提示。

关于禁用对话框的说明

无法直接禁用Chrome的「此网站尝试打开另一应用」对话框——这是浏览器的安全机制。但通过上述方法,可以避免触发这个对话框的场景,让未安装App的用户直接进入网页。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 17:34:59