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

如何通过Flutter和Dynamic Links将Android App设为HTTPS链接默认应用?

解决Flutter Dynamic Links无法唤起应用的问题

以下是针对你遇到的问题的排查和修复步骤:

你提到在https://example.com/.well-known/assetlinks.json托管了文件,但AndroidManifest中配置的host是mydomain.com——这两个域名必须完全一致。assetlinks.json必须部署在你要关联的域名(即mydomain.com)的.well-known目录下,否则系统无法验证你的应用与域名的关联关系。

同时确认assetlinks.json的格式和内容完全正确:

[
  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "你的应用包名",
      "sha256_cert_fingerprints": ["你的SHA256指纹"]
    }
  }
]
  • 替换你的应用包名为AndroidManifest中的package字段值
  • 确保SHA256指纹与你签名应用的keystore一致(debug和release版本的指纹不同,测试时要对应)

2. 验证autoVerify的生效状态

使用ADB命令检查系统是否已验证你的应用与域名的关联:

adb shell dumpsys package domain-preferred-apps

在输出中搜索你的应用包名,查看是否存在verified:true的标记。如果是verified:false,说明验证未通过,需要:

  • 检查assetlinks.json是否能被无访问限制地访问(无CDN缓存、无防火墙拦截)
  • 确认域名的HTTPS证书有效(autoVerify仅支持HTTPS)
  • 等待一段时间(系统可能需要数小时完成验证,尤其是首次配置)

3. 测试链接的正确方式

避免直接在浏览器地址栏输入链接(部分浏览器会强制在自身打开),改用以下方式测试:

  • 在短信、备忘录等应用中点击链接
  • 使用ADB命令模拟Intent唤起:
adb shell am start -a android.intent.action.VIEW -d "https://mydomain.com/path/test"

如果ADB命令能成功唤起应用,说明系统配置已生效,问题可能出在浏览器的默认行为上。

4. 检查Flutter端的Dynamic Links监听配置

如果你使用的是Firebase Dynamic Links,确保Flutter端已正确初始化并监听链接:

import 'package:firebase_dynamic_links/firebase_dynamic_links.dart';

@override
void initState() {
  super.initState();
  _initDynamicLinks();
}

void _initDynamicLinks() async {
  final PendingDynamicLinkData? data = await FirebaseDynamicLinks.instance.getInitialLink();
  final Uri? deepLink = data?.link;

  if (deepLink != null) {
    // 处理深度链接逻辑
  }

  FirebaseDynamicLinks.instance.onLink.listen((dynamicLinkData) {
    final Uri? deepLink = dynamicLinkData.link;
    if (deepLink != null) {
      // 处理实时接收的链接
    }
  }).onError((error) {
    // 处理错误情况
  });
}

如果没有配置监听,即使应用被唤起,也无法处理链接,但这不会导致链接无法唤起应用,仅作为补充检查。

5. 其他排查点

  • 确认AndroidManifest中没有其他冲突的intent-filter(比如其他activity也配置了相同的host和pathPrefix)
  • 检查应用是否被系统标记为“未验证”(在应用信息的“默认应用”设置中查看是否有相关提示)
  • 清除应用的缓存和数据,重新安装后测试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 03:40:11