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

Flutter开启Deep Link:默认Web链接支持关闭原因及配置咨询

Flutter Deep Link:默认Web链接支持关闭的原因及解决办法

问题描述

我正在为Flutter应用添加Deep Link,配置了如下Android Manifest规则:

<intent-filter android:autoVerify="true">
   <action android:name="android.intent.action.VIEW" />
   <category android:name="android.intent.category.DEFAULT" />
   <category android:name="android.intent.category.BROWSABLE" />

   <data android:scheme="http" />
   <data android:scheme="https" />

   <data android:host="exempl.com" />
</intent-filter>

通过adb测试能正常唤起应用,但系统显示默认Web链接支持处于关闭状态(配图:默认Web链接支持关闭状态),想知道原因是什么?


原因分析

你看到的“默认Web链接支持关闭”,核心是Android App Links的自动验证未通过。

虽然你的intent-filter配置正确,adb测试能直接唤起应用(因为adb跳过了系统的验证环节),但当你设置android:autoVerify="true"时,系统会自动验证你的应用是否是该域名链接的合法处理者——只有通过验证,系统才会把你的应用设为该链接的默认打开方式,否则就会显示“支持关闭”。


解决步骤

要通过App Links验证,你需要完成以下操作:

  1. 配置域名的数字资产链接文件
    在你的域名exempl.com的.well-known目录下,创建并放置assetlinks.json文件,内容格式如下:

    [
      {
        "relation": ["delegate_permission/common.handle_all_urls"],
        "target": {
          "namespace": "android_app",
          "package_name": "你的Flutter应用包名",
          "sha256_cert_fingerprints": ["你的应用签名SHA256指纹"]
        }
      }
    ]
    

    注意:

    • 包名要和你AndroidManifest里的package属性一致;
    • SHA256指纹要和你签名应用的密钥匹配(debug和release密钥的指纹不同,测试阶段用debug密钥的指纹即可)。
  2. 验证文件可正常访问
    用浏览器直接访问https://exempl.com/.well-known/assetlinks.json,确保能直接返回上述JSON内容,没有404错误、跳转或权限拦截。

  3. 触发系统重新验证
    完成文件配置后,卸载并重新安装应用,或者执行以下adb命令强制刷新验证状态:

    adb shell pm set-app-links --package 你的应用包名 1 all
    

    重启应用后,再次检查Web链接支持状态,应该就会显示为开启了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 02:55:28