Android Firebase 动态链接,一种通过深度链接模拟 Play 商店安装的方法

Android Firebase Dynamic Links, A way to simulate Play Store install via deeplink

我们在本机 Android 应用程序中定义了几个 Firebase Dynamic link。对于第一次来自动态 link 并安装应用程序的用户,我们想了解他们来自哪个动态 link。

我的问题是为了做到这一点,有没有办法从动态 link 伪造 Play 商店安装?因为出于测试目的,我需要检查哪些数据即将到来。

示例:

是否可以知道 URI 哪个 Open 按钮通过了应用程序?

在iOS中更容易测试。当用户单击动态 link 并转到 App Store 时,您可以 运行 代码库并安装应用程序。当应用程序打开时,它仍然表现得像从 App Store 安装的一样。但从 Android 的角度来看,它并不是那样工作的。

希望它已经足够解释了。期待建议。

对于那些可能正在为同样的问题而苦苦挣扎的人,这里是我的解决方法。

首先,尽管在 Firebase Dynamic Links Documentation 中它说 links 将在 Play 商店安装过程中继续存在,但这并不完全正确。就像我的情况

完成上述步骤后,当用户打开应用程序时,Firebase 动态 links 侦听器将仅获取您从 Firebase 控制台设置的基本登录页面。因此,如果您有这样的 link link https://myapp.page.link/qr/?id=123456,您的查询参数将会丢失!

但是,仍然可以了解用户点击并安装应用程序的深层link路径。长话短说,它是 utmParameters。该变量是一个捆绑包,带有几个附加功能,其中之一是 utm_campaign 键。其中包括你的 deeplink 名字。请参阅下面的代码:

Firebase.dynamicLinks
        .getDynamicLink(intent)
        .addOnSuccessListener(activity) { pendingDynamicLinkData ->
            Log.v(
                TAG, "pendingDynamicLinkData link : ${pendingDynamicLinkData?.link}" +
                        "pendingDynamicLinkData utmParameters : ${pendingDynamicLinkData?.utmParameters}"
            )

            pendingDynamicLinkData?.let {
                // Check if it has your desired utm name
                if(it.utmParameters.get("utm_campaign") == "Your Dynamic Link Name") {
                    //Do the job
                }
            }
        }
        .addOnFailureListener(this) { e -> Log.v(TAG, "getDynamicLink:onFailure $e") }

实施后,您可以为自己创建一个内部版本并测试从 Play 商店下载流程。