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

React Native Android 12及以上版本Deep Linking失效求助

Android 12/13 Deep Linking 自动跳转失效问题排查与解决

我在React Native中配置的Deep Linking intent-filter如下:

<intent-filter android:label="@string/app_name" android:autoVerify="true">
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT" />
  <category android:name="android.intent.category.BROWSABLE" />
  <!-- Accepts URIs that begin with "https://example.com" or "https://www.example.com" -->
  <data android:scheme="https" android:host="www.example.com" />
  <data android:scheme="https" android:host="example.com" />
</intent-filter>

低版本Android设备上,点击链接会弹出选择框让用户选应用或浏览器打开,但Android 12/13上链接直接在浏览器打开。已经创建assetlinks.json并放在https://www.example.com/.well-known/assetlinks.json,手动设置“Supported web links”后能正常跳转,但不想让用户手动操作。


排查与解决步骤

  • 检查assetlinks.json的正确性
    确保文件格式和内容完全符合规范,示例如下:

    [
      {
        "relation": ["delegate_permission/common.handle_all_urls"],
        "target": {
          "namespace": "android_app",
          "package_name": "你的应用包名",
          "sha256_cert_fingerprints": ["应用签名的SHA256指纹"]
        }
      }
    ]
    

    注意点:

    • 包名必须和AndroidManifest.xml中声明的一致
    • SHA256指纹要使用对应签名的指纹(发布版/测试版要对应,不能混用)
    • 文件需为UTF-8编码,不能有语法错误或多余空格
  • 验证assetlinks.json的可访问性

    • 确保文件能通过HTTPS直接访问,无301/302重定向(Android 12+不支持重定向验证)
    • 服务器返回的Content-Type必须是application/json,不能是text/plain等其他类型
    • 确认服务器没有防盗链、CDN缓存等限制,导致Google验证服务无法抓取文件
  • 调整AndroidManifest.xml配置

    • android:autoVerify="true"只能添加在一个intent-filter上,不要重复配置
    • 可以给<data>标签加上android:pathPattern=".*",避免潜在的路径匹配问题:
      <data android:scheme="https" android:host="example.com" android:pathPattern=".*" />
      <data android:scheme="https" android:host="www.example.com" android:pathPattern=".*" />
      
    • 确保intent-filter所在的Activity设置了android:exported="true"(Android 12+要求可导出的Activity才能接收外部Intent)
  • 检查应用签名与验证状态

    • 用Android Studio的App Links Assistant(Tools > App Links Assistant)一键验证配置,它会自动检查assetlinks.json和Manifest的匹配度
    • 安装应用后,在设备设置 > 应用 > 你的应用 > 打开方式 > 支持的网页链接中查看验证状态,若显示“未验证”,说明签名或assetlinks.json存在问题
    • 测试时尽量用正式签名的APK,Debug签名需单独把指纹加到assetlinks.json里才能通过验证
  • 清除应用缓存与默认设置

    • 进入设备设置,找到应用后清除默认打开方式和缓存,再重新安装测试
    • Android 12+会缓存App Links的验证结果,修改配置后必须清除缓存或重装应用才能生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 21:07:23