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

Flutter配置Deep Link报错,添加AndroidManifest代码仍未解决

  • 先确认intent-filter的位置:得放在主Activity标签里(一般是io.flutter.embedding.android.FlutterActivity),别放到其他Activity或者Application标签下,不然系统识别不到。
  • 核对URI匹配逻辑:
    • 测试的链接必须是https://www.example.com/gizmos开头的,比如https://www.example.com/gizmos/test没问题,但https://example.com/gizmos(没带www)、http://www.example.com/gizmos(用的http协议)都不行。
    • 要是想兼容不带www的域名,要么加个额外的<data>节点,要么把host改成example.com再加android:includeSubdomains="true"属性。
  • 检查Flutter端的路由处理:
    • 得确保Flutter代码里已经监听了Deep Link,比如用Uri.base拿跳转链接,或者用插件的话要初始化对。示例代码:
      void main() {
        WidgetsFlutterBinding.ensureInitialized();
        // 获取Deep Link参数
        final uri = Uri.base;
        if (uri.path.startsWith('/gizmos')) {
          // 写你的跳转逻辑
        }
        runApp(MyApp());
      }
      
  • 重新构建再测试:
    • 别用热重载,必须重新编译APK装到设备上(用flutter build apk打包后安装,或者直接flutter run --release),因为AndroidManifest改了之后得重新打包才生效。
    • 测试可以用adb命令:adb shell am start -W -a android.intent.action.VIEW -d "https://www.example.com/gizmos/test" com.your.package.name,记得把com.your.package.name换成你自己的应用包名。
  • 检查系统设置:
    • 确认你的应用是这个链接的默认打开应用,有时候系统弹选择器,要是之前选了别的应用,得去应用设置里清掉默认打开方式。
  • 处理HTTPS链接验证(可选):
    • 用HTTPS scheme的话,有些设备要验证域名关联,得在域名根目录放个assetlinks.json文件,证明你的应用有权处理这个域名的链接。文件格式参考:
      [{
        "relation": ["delegate_permission/common.handle_all_urls"],
        "target": {
          "namespace": "android_app",
          "package_name": "com.your.package.name",
          "sha256_cert_fingerprints": ["你应用签名的SHA256指纹"]
        }
      }]
      
    • SHA256指纹可以用keytool -list -v -keystore your_keystore.jks命令获取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 02:16:29