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

Flutter Android App Link(深度链接)无法在安卓设备打开应用排查

Android深度链接无法唤起Flutter应用的排查方案

结合你提供的配置和adb命令能正常启动应用的情况,以下是具体排查方向:

1. 检查App Links验证状态(核心原因)

你在intent-filter中设置了android:autoVerify="true",这会触发Android的App Links验证机制,只有验证通过,系统才会直接唤起应用,否则会跳转网页或弹出选择器:

  • 验证assetlinks.json的可访问性:确保设备能通过HTTPS访问https://192.168.1.92:8000/.well-known/assetlinks.json(注意必须用HTTPS,HTTP无法通过官方验证)。
  • 核对SHA256指纹:确认assetlinks.json中的指纹与你当前测试包的证书指纹一致。Debug包和Release包的指纹不同,Debug包可通过以下命令获取:
    keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
    
  • 查看设备端验证结果:进入设备「设置」→「应用」→「你的应用」→「打开链接」,若显示「未验证」,说明验证流程未通过,需优先解决此问题。

2. 修正Intent Filter的Data配置

你的intent-filter中第二个<data>标签缺少host属性,会导致匹配范围异常,影响验证和链接唤起:

<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" />
    <!-- 保留http的本地测试配置 -->
    <data android:scheme="http" android:host="192.168.1.92:8000" />
    <!-- 补充https的host配置 -->
    <data android:scheme="https" android:host="192.168.1.92:8000" />
</intent-filter>

另外,Android 12+对HTTP协议的App Links有严格限制,建议优先使用HTTPS进行测试(可使用自签名证书并让设备信任该证书)。

3. 处理Android 11+的包可见性限制

Android 11及以上版本需要声明包可见性,才能让浏览器唤起你的应用,在AndroidManifest.xml中添加以下配置:

<queries>
    <intent>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="https" />
    </intent>
</queries>

4. 重置应用默认打开方式

若之前用户手动选择过用浏览器打开该链接,系统会保留默认设置:

  • 进入设备「设置」→「应用」→「你的应用」→「默认打开方式」,清除已设置的默认值,重新测试链接唤起。

5. 验证Flutter端的基础配置(次要)

虽然不影响应用唤起,但需确保Flutter端能接收链接:

  • 在main函数中通过WidgetsBinding.instance.platformDispatcher.defaultRouteName获取唤起链接,或使用路由配置处理跳转逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 12:43:18