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

Android端Firebase动态链接先启浏览器再开应用问题求助

Firebase动态链接先跳浏览器再启动应用的排查方案

核心排查与修复步骤

1. 修复链接的URL编码问题

你的链接中link参数内部包含?和&,这些字符未编码会被解析为顶层链接的参数,导致Firebase无法正确识别深层链接规则,触发浏览器跳转。必须对link参数的值做URL编码:

  • 原错误格式(示例):
    https://my_subdomain.page.link?link=https://my_subdomain.page.link/app1?param1=aaa&param2=bbb&apn=app1_package_name
    
  • 编码后正确格式(示例):
    https://my_subdomain.page.link?link=https%3A%2F%2Fmy_subdomain.page.link%2Fapp1%3Fparam1%3Daaa%26param2%3Dbbb&apn=app1_package_name
    
    关键编码映射::→%3A,/→%2F,?→%3F,&→%26,=→%3D。

2. 验证App Links配置完整性

(1)Firebase控制台与assetlinks.json验证

  • 确保三个构建变体的包名已添加到Firebase控制台的动态链接项目中,且每个包名对应的SHA-256指纹正确配置。
  • 确认https://my_subdomain.page.link/.well-known/assetlinks.json文件已部署,文件需包含三个包名的验证信息,示例格式:
    [
      {
        "relation": ["delegate_permission/common.handle_all_urls"],
        "target": {
          "namespace": "android_app",
          "package_name": "app1_package_name",
          "sha256_cert_fingerprints": ["你的SHA-256指纹"]
        }
      },
      {
        "relation": ["delegate_permission/common.handle_all_urls"],
        "target": {
          "namespace": "android_app",
          "package_name": "app2_package_name",
          "sha256_cert_fingerprints": ["你的SHA-256指纹"]
        }
      },
      {
        "relation": ["delegate_permission/common.handle_all_urls"],
        "target": {
          "namespace": "android_app",
          "package_name": "app3_package_name",
          "sha256_cert_fingerprints": ["你的SHA-256指纹"]
        }
      }
    ]
    

(2)AndroidManifest配置检查

每个构建变体的目标Activity必须添加正确的intent-filter,且开启自动验证:

<activity
    android:name=".YourTargetActivity">
    <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" />
        <!-- 对应每个变体的pathPrefix -->
        <data
            android:scheme="https"
            android:host="my_subdomain.page.link"
            android:pathPrefix="/app1" />
    </intent-filter>
</activity>
  • 确保android:autoVerify="true"存在,系统会自动验证App Links权限,无需用户手动选择打开方式。

3. 确认Firebase动态链接规则设置

  • 在Firebase控制台创建动态链接时,勾选**"直接打开应用(如果已安装)"**选项;手动构造链接时,确保apn参数正确对应变体包名,且无冲突参数覆盖规则。
  • 避免使用测试模式链接(测试模式会跳过部分验证逻辑,仅用于开发调试)。

4. 本地测试与系统设置排查

  • 使用ADB命令直接测试链接,排除系统默认设置干扰:
    adb shell am start -a android.intent.action.VIEW -d "你的编码后链接"
    
    如果命令能直接打开应用,说明链接本身无问题,需检查系统默认打开方式(在应用设置中清除默认启动选项)。
  • 针对Android 6.0以下系统,App Links自动验证不生效,会出现跳转浏览器的情况,这是系统限制,无需额外处理。

内容的提问来源于stack exchange,提问作者Tam Nguyen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 23:01:38