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

Flutter Deep Links异常:adb命令正常但第三方应用无法唤起应用

Flutter Deep Links无法从其他应用唤起的解决方案

针对你遇到的adb命令可正常唤起应用,但其他应用打开链接直接跳转网页的问题,以下是关键排查和修复方向:

1. 处理Android App Link自动验证失败(autoVerify)

你在intent-filter中设置了android:autoVerify="true",这会触发Android App Link的验证机制:系统会检查域名hordevfree.online根目录下是否存在assetlinks.json文件,验证不通过时,系统不会将该域名的链接关联到你的应用,直接交由浏览器处理(adb命令会跳过这个验证步骤,所以能正常唤起)。

修复步骤:

  • 在网站根目录(或.well-known子目录)放置assetlinks.json,内容示例:
[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.hordev.porcicultor",
    "sha256_cert_fingerprints": ["你的应用签名SHA256指纹"]
  }
}]
  • 获取SHA256指纹:使用keytool -list -v -keystore 你的签名文件路径命令获取(debug包可使用默认debug.keystore)。
  • 验证文件可访问:确保通过https://hordevfree.online/.well-known/assetlinks.json或https://hordevfree.online/assetlinks.json能正常访问该文件。

2. 提高Intent Filter优先级

如果存在其他应用(比如浏览器)的intent-filter也匹配该链接,可能因优先级更高导致被拦截。给你的deep link intent-filter添加优先级:

修改AndroidManifest.xml中的intent-filter:

<intent-filter android:autoVerify="true" android:priority="1000">
    <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="hordevfree.online" android:pathPrefix="/"/>     
</intent-filter>

android:priority="1000"是允许的最高优先级,确保你的应用优先被系统匹配。

3. 重置应用关联与缓存

  • 卸载并重新安装应用,确保系统重新读取Manifest配置。
  • 清除浏览器的缓存和链接关联数据:进入浏览器设置→应用信息→清除数据。
  • 在系统设置中手动关联:进入应用信息→打开支持的链接→确保已勾选你的域名。

额外测试建议

  • 使用adb shell pm get-app-links com.hordev.porcicultor命令查看应用的链接验证状态,确认是否显示verified。
  • 尝试在短信、笔记应用中直接点击链接测试,而非从浏览器跳转。

内容的提问来源于stack exchange,提问作者Carlos Arévalo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 12:03:16