【问题标题】:How to tell between a launch and an install from a Firebase Dynamic Link?如何区分 Firebase 动态链接的启动和安装?
【发布时间】:2019-01-11 19:08:21
【问题描述】:

当用户点击我的 Firebase 动态链接(带有深层链接)以启动我的 Android 应用时,会发生以下两种情况之一:

  1. 如果未安装该应用,用户将被引导至 Google Play 安装该应用,然后使用我的深层链接启动它。
  2. 如果应用已安装,它将使用我的深层链接启动。

我的应用需要知道发生了什么。

据我所知,Firebase API 不会告诉我该应用是否已作为 FDL 流程的一部分安装。我错过了什么吗?

附:使用共享首选项对我的目的来说不够好,因为它们在用户清除数据时被删除,因此不能完美地代表安装。我正在寻找类似 @​​987654321@ 广播事件由 Google Play 触发,但它适用于 Firebase 动态链接。

【问题讨论】:

    标签: android google-play firebase-dynamic-links


    【解决方案1】:

    根据documentation,这是完全可能的:

    当用户打开您的一个动态链接时,如果您的应用尚未安装,用户会被发送到 Play 商店或应用商店以安装您的应用(除非您另外指定),然后您的应用就会打开。然后,您可以检索传递给您的应用的链接,并根据您的应用处理深层链接

    您可以使用Dynamic Links SDK并调用FirebaseDynamicLinks.getDynamicLink()方法来获取传递给链接的数据:

    FirebaseDynamicLinks.getInstance().getDynamicLink(getIntent()).addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {
        @Override
        public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
            Uri deepLink = null;
            if (pendingDynamicLinkData != null) {
                deepLink = pendingDynamicLinkData.getLink();
            }
        }
    }).addOnFailureListener(this, new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            Log.w(TAG, "getDynamicLink:onFailure", e);
        }
    });
    

    您可以将它与存储在 SharedPreferences 中的“firstlaunch”标志结合使用来检测应用程序是否已安装。

        if (prefs.getBoolean("firstlaunch", true)) {
            prefs.edit().putBoolean("firstlaunch", false).commit();
        }
    

    https://firebase.google.com/docs/dynamic-links/android/receive

    【讨论】:

    • 这并不能告诉我应用程序是刚刚安装还是已经安装,对吗?这就是我需要知道的。
    • @BarryFruitman - 您可以将其与布尔 SharedPreference 结合使用作为复合键来检测“全新安装”。所以在启动时 - 检查共享首选项中是否存在一个值,如果存在则该应用程序已安装。查看答案编辑
    • 抱歉 pnavk 但我需要比这更好的东西,因为 SharedPreferences 在用户清除数据时被删除,因此它们不能完美地代表安装。
    猜你喜欢
    • 2021-08-08
    • 1970-01-01
    • 1970-01-01
    • 2020-01-19
    • 2021-01-18
    • 2021-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多