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

Firebase Dynamic Links安卓端获取pendingDynamicLinkData始终为null如何解决

安卓端Firebase Dynamic Links异常解决方案

问题1:点击链接弹出应用和浏览器选择弹窗

修复步骤:

  1. 给intent-filter添加android:autoVerify="true"属性,开启安卓App Links自动验证,验证通过后系统会直接拉起应用无需选择。
  2. 登录Firebase控制台,进入对应安卓应用的配置页,补全所有使用场景的SHA256签名(包含调试签名、发布签名、若开启Google Play托管签名还需要添加Google Play后台提供的SHA256签名)。Firebase会自动将签名信息同步到你的动态链接域名的/.well-known/assetlinks.json验证文件,保证系统验证通过。
  3. 若你的动态链接最终跳转的目标深链使用自定义域名(例如https://app.myexample.com),需要在intent-filter中额外添加对应域名的data节点。

修复后的intent-filter示例:

<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:host="myexample.page.link"
          android:scheme="https" />
      <!-- 可选:自定义目标深链域名配置 -->
      <data
          android:host="app.myexample.com"
          android:scheme="https" />
</intent-filter>

问题2:选择应用打开后pendingDynamicLinkData始终为null

修复步骤:

  1. 分别在onCreate和onNewIntent回调中调用动态链接解析逻辑,覆盖应用冷启动、后台唤起两种场景。
  2. 不要修改传递给getDynamicLink的原始Intent内容,避免丢失动态链接携带的参数。
  3. 测试时不要直接在浏览器地址栏输入链接,需从第三方应用(短信、备忘录、聊天工具等)点击跳转,地址栏直接输入不会携带动态链接解析所需的必要参数。

修复后的Activity代码示例:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    // 处理冷启动唤起场景
    handleDynamicLink(intent)
}

override fun onNewIntent(intent: Intent?) {
    super.onNewIntent(intent)
    // 处理后台唤起场景
    intent?.let { handleDynamicLink(it) }
}

private fun handleDynamicLink(targetIntent: Intent) {
    Firebase.dynamicLinks
        .getDynamicLink(targetIntent)
        .addOnSuccessListener(this) { pendingDynamicLinkData ->
            val deepLink = pendingDynamicLinkData?.link
            deepLink?.let {
                // 此处添加自身业务逻辑
            }
        }
        .addOnFailureListener { e ->
            // 可添加错误日志排查问题
        }
}

通用验证步骤

修改配置后需卸载重装应用(或清除应用存储),触发系统重新进行App Links验证,避免本地缓存的旧验证结果影响测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:54:06