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

Flutter应用配置Deep Link后需手动添加可打开URL的问题求助

Flutter App Links默认未自动配置可打开URL的解决方法

我已为Flutter应用配置了Deep Link,App links可正常打开,但应用设置中默认未配置可打开的URL,需手动点击“添加链接”(该URL已在选项列表中)完成配置。

相关界面截图:

  • 应用设置界面截图:应用设置界面截图
  • 点击添加链接后的界面截图:点击添加链接后的界面截图

当前配置代码

AndroidManifest.xml中的Deep Link配置

<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="http" android:host="abc.myurl.com" />
    <data android:scheme="https" />
</intent-filter>
<meta-data
    android:name="io.flutter.embedding.android.NormalTheme"
    android:resource="@style/NormalTheme"
    />

assetLink.json配置

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.myapp.myapp",
    "sha256_cert_fingerprints": ["----myapp fingerprint-----"]
  }
}]

排查与解决步骤

  1. 修正Intent Filter的URL匹配规则
    当前https scheme的data标签未指定host,导致系统无法识别完整的URL关联范围。修改为:

    <data android:scheme="https" android:host="abc.myurl.com" />
    

    确保http和https的data标签都明确指向同一个host。

  2. 验证assetLinks.json的有效性

    • 确认文件已部署到https://abc.myurl.com/.well-known/assetlinks.json,访问时返回application/json MIME类型。
    • 用Android Studio的App Links Assistant(路径:Tools > App Links Assistant)完成全流程验证,检查包名、SHA256指纹、文件路径是否完全匹配。
  3. 强制系统重新验证App Links

    • 卸载应用后重新安装,系统会在安装阶段自动执行App Links验证并配置默认关联。
    • 或通过ADB命令手动触发验证:
      adb shell pm verify-app-links --re-verify com.myapp.myapp
      
    • 验证后检查状态,输出显示verified: true则说明验证成功:
      adb shell pm get-app-links com.myapp.myapp
      
  4. 确认签名指纹完全匹配
    用keytool命令获取应用签名的SHA256指纹,确保与assetLinks.json中的值完全一致(无空格、大小写匹配):

    # 正式签名文件
    keytool -list -v -keystore your-keystore-file.jks
    # Debug签名文件
    keytool -list -v -keystore ~/.android/debug.keystore
    
  5. Android 12+权限处理
    对于Android 12及以上版本,可在应用启动时主动检查并请求App Links权限:

    import 'package:app_links/app_links.dart';
    
    Future<void> checkAndRequestAppLinkPermission() async {
      final appLinks = AppLinks();
      final status = await appLinks.getAppLinkPermissionStatus();
      if (status != AppLinkPermissionStatus.approved) {
        await appLinks.requestAppLinkPermission();
      }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 07:03:29