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

Mer*_*lıç 1 android google-play firebase firebase-dynamic-links

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

我的问题是为了做到这一点,有什么方法可以从动态链接伪造 Play 商店安装吗?因为出于测试目的,我需要检查即将到来的数据。

例子 :

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

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

希望它有足够的解释。期待建议。

Mer*_*lıç 5

对于那些可能遇到同样问题的人,我是如何解决这个问题的。

首先,尽管Firebase 动态链接文档中表示链接将在 Play 商店安装过程中继续存在,但这并不完全正确。就像我的情况一样

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

但是,仍然可以了解用户单击了哪个深层链接路径并安装了应用程序。长话短说,就是utmParameters. 该变量是一个捆绑包,附带几个额外的内容,其中一个是utm_campaign关键。其中包括您的深层链接名称。请参阅下面的代码:

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") }
Run Code Online (Sandbox Code Playgroud)

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