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

Flutter/Android 12深度链接默认打开浏览器而非应用问题

解决Android 12+深度链接默认打开浏览器的问题

问题根源

Android 12(API 31)及更高版本对验证型深度链接的规则做了强化,原有配置缺少必要的验证标记,导致系统无法确认应用是该域名链接的合法默认处理者,因此会直接跳转至浏览器。

修复方案

1. 更新AndroidManifest.xml中的Intent Filter

在你的intent-filter标签中添加android:autoVerify="true"属性,同时合并data标签配置以避免歧义:

<meta-data android:name="flutter_deeplinking_enabled" android:value="true" />
<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="https"
        android:host="flutterbooksample.com"/>
</intent-filter>

2. 配置服务器端验证文件

在你的域名服务器的.well-known目录下放置assetlinks.json文件,用于验证应用与域名的关联关系,文件内容如下:

[
    {
        "relation": ["delegate_permission/common.handle_all_urls"],
        "target": {
            "namespace": "android_app",
            "package_name": "你的应用包名",
            "sha256_cert_fingerprints": ["应用签名的SHA256指纹"]
        }
    }
]
  • 替换你的应用包名:对应Android项目build.gradle中applicationId字段的值。
  • 替换应用签名的SHA256指纹:可通过keytool -list -v -keystore 你的签名文件路径命令获取,或在Android Studio生成签名包时查看。

3. 验证生效

安装签名后的应用到Android 12+设备,系统会自动校验服务器上的assetlinks.json,校验通过后应用将成为该域名链接的默认处理者。

调试临时方案

如果调试阶段不想配置服务器,可手动设置默认应用:长按应用图标 → 应用信息 → 默认打开 → 添加链接,选择你的域名链接并设为默认。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 10:00:56