代码之家  ›  专栏  ›  技术社区  ›  Barry Fruitman

如何从Firebase动态链接区分启动和安装?

  •  1
  • Barry Fruitman  · 技术社区  · 5 年前

    1. 如果应用程序没有安装,用户将被引导到谷歌播放安装应用程序,然后启动它与我的深层链接。

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

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

    对我来说,使用共享pref不够好,因为它们在用户清除数据时会被删除,因此不能完全代表安装。我在找类似的东西 INSTALL_REFERRER 广播事件由googleplay触发,但它与Firebase动态链接一起工作。

    1 回复  |  直到 5 年前
        1
  •  -1
  •   pnavk    5 年前

    根据 documentation

    当用户打开你的一个动态链接时,如果你的应用程序尚未安装,则会将该用户发送到Play Store或app Store以安装你的应用程序(除非你另有指定),然后你的应用程序将打开。然后,您可以检索传递给应用程序的链接,并根据应用程序的情况处理深度链接

    你可以用 动态链接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);
        }
    });
    

    您可以将此功能与存储在SharedReferences中的“firstlaunch”标志结合使用,以检测应用程序是否已安装。

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

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