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

Android Chrome中OAuth授权码流导航链过期致App Link无法激活问题

解决Chrome "Navigation chain expired" 导致App Link唤起失败的问题

触发规则

这个问题是Chrome的导航链超时限制导致的:

  • Chrome会把从OAuth授权码流启动开始的一系列页面跳转视为同一个导航链,链内每个页面的重定向等待时长被限制在15秒(日志里的15000是毫秒,属于笔误写成了秒)。
  • 当链内某个页面等待重定向的时间超过15秒(比如你场景中未安装itsme时的跳转等待、FIDO密钥注册这类耗时较长的认证步骤),Chrome会标记该导航链过期,此时后续的已验证App Link跳转就会被拦截,不会触发外部Intent(对应日志里的NO_OVERRIDE),而不是期望的OVERRIDE_WITH_EXTERNAL_INTENT。

规避方案

1. 提前检测应用状态,减少页面等待

在触发itsme这类第三方应用跳转前,先通过Capacitor的API检测该应用是否已安装:

  • 如果未安装,直接引导用户前往应用商店下载,不要让页面停留在等待重定向的状态,避免触发15秒超时。

2. 拆分导航链,隔离耗时操作

把可能超时的认证步骤从原OAuth导航链中拆分:

  • 在OAuth流程中,当需要执行itsme或FIDO这类耗时操作时,先跳转到一个独立的中间页面,由这个页面发起后续的认证请求。新的页面会创建新的导航链,不受原链的超时限制。

3. 使用Chrome自定义标签页(Custom Tabs)替代普通浏览器

Capacitor支持配置使用Chrome自定义标签页来启动OAuth流程:

  • 自定义标签页对导航链的超时规则更宽松,且与应用的集成度更高,能有效避免这类App Link唤起被拦截的问题。

4. 优化后端认证流程响应速度

针对FIDO密钥注册这类后端参与的耗时步骤,优化后端的处理逻辑,减少前端页面的等待时间,确保整个重定向流程能在15秒内完成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 05:07:47