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

Flutter Android端Deep Link无法唤起应用问题排查求助

Android端浏览器无法唤起Flutter Deep Link的排查方案

以下是针对你遇到的问题的具体排查方向和解决方法:

1. 启用Flutter Deep Link元数据

你的AndroidManifest.xml中注释了<meta-data android:name="flutter_deeplinking_enabled" android:value="true" />,请取消这行注释。Flutter依赖该元数据对接Android的App Links机制,缺失它会导致系统无法正确识别应用的Deep Link处理能力。

2. 验证Asset Links文件的核心配置

SHA256指纹匹配问题

确保assetlinks.json中sha256_cert_fingerprints的值与当前测试应用的签名指纹完全一致:

  • 调试包和发布包的SHA256指纹是独立的,测试调试包时必须使用调试签名的指纹,测试发布包时用发布签名的指纹。
  • 可通过以下命令获取指纹:
keytool -list -v -keystore 你的签名文件路径

文件访问与格式验证

  • 直接在浏览器访问https://app.name.com/.well-known/assetlinks.json,确认能正常返回JSON内容,且响应头的Content-Type为application/json(你的Firebase Hosting配置已设置该头,但仍需实际验证)。
  • 检查JSON格式是否合法,确保引号、逗号等符号无语法错误,SHA256指纹是完整的字符串(你提供的代码中指纹部分有省略,需确认完整值正确)。

3. 检查系统的App Links验证状态

在设备的设置 → 应用 → 你的应用 → 打开方式中,查看是否显示“由网站验证”的标识:

  • 如果没有该标识,说明系统未通过assetlinks.json验证应用与域名的关联,此时浏览器不会自动唤起应用,只会显示选择界面或直接打开网页。

4. 浏览器的App Links支持与用户设置

  • 确保使用支持App Links的浏览器(如Chrome),部分第三方浏览器可能不支持自动唤起逻辑,仅显示选择提示。
  • Chrome首次访问链接时,需用户手动选择“始终允许”唤起应用;若之前选择过“仅一次”或“打开网页”,需在应用设置中重置默认打开方式。

5. 调试包与发布包的差异验证

如果你测试的是调试包,务必确认assetlinks.json中配置的是调试签名的SHA256指纹——多数开发者会误用发布包指纹,导致调试包无法通过验证。

补充验证命令

可以使用不带包名的adb命令测试,观察系统的处理行为:

adb shell am start -a android.intent.action.VIEW -c android.intent.category.BROWSABLE -d "https://app.name.com"
  • 若弹出应用选择框包含你的应用,说明Intent Filter配置正常,但App Links验证未通过;
  • 若直接打开网页,说明Intent Filter或验证环节存在问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 11:54:54