如何在Firebase Android中获取用户点击的动态短链接?

时间:2017-07-07 10:35:45

标签: android firebase firebase-dynamic-links

我在Firebase控制台中创建了一个动态链接。它有一个简短的URL,可以将用户定向到应用程序内的Activity。

我在iOS中使用代码完成了相同的操作:

 func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool
{

    if let incomingUrl = userActivity.webpageURL
    {
     print(incomingUrl) //Here I get the url that the user clicked on
    }
}

当用户点击动态短链接时,我正在尝试获取Android中的确切输出。 目前,我有:

       FirebaseDynamicLinks.getInstance()
             .getDynamicLink(getIntent())
            .addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {
                @Override
                public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
                    // Get deep link from result (may be null if no link is found)
                    Uri deepLink = null;
                    if (pendingDynamicLinkData != null)
                    {
                        deepLink = pendingDynamicLinkData.getLink();

                    }


                    // Handle the deep link. For example, open the linked
                    // content, or apply promotional credit to the user's
                    // account.
                    // ...

                    // ...
                }
            })
            .addOnFailureListener(this, new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Log.w(TAG, "getDynamicLink:onFailure", e);
                }
            });

在这里,我可以获得深层链接,我不清楚在Android中获取短链接。

谢谢。

1 个答案:

答案 0 :(得分:0)

您误解了动态链接和Branch.io等平台(完全披露:我在分支团队中)的工作方式。 您的Android实施是正确的 - iOS错误。您想要查看the Dynamic Links setup guide for iOS以确保您已全部设置。

使用托管深层链接的一个主要好处是,您不需要用户点击的实际网址。这有两个很好的理由:

  • 该网址永远不会用于延迟深层链接用例(当应用尚未安装时)。
  • 当通过Universal Links / App Links打开应用程序而不是通过自定义URI方案时,URL的到达方式不同。

托管链接平台将这些技术细节抽象化,以便您可以实现自己的功能而无需担心它们。如果你试图绕过预期的用途,它实际上会使事情变得更加艰难。