我在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中获取短链接。
谢谢。
答案 0 :(得分:0)
您误解了动态链接和Branch.io等平台(完全披露:我在分支团队中)的工作方式。 您的Android实施是正确的 - iOS错误。您想要查看the Dynamic Links setup guide for iOS以确保您已全部设置。
使用托管深层链接的一个主要好处是,您不需要用户点击的实际网址。这有两个很好的理由:
托管链接平台将这些技术细节抽象化,以便您可以实现自己的功能而无需担心它们。如果你试图绕过预期的用途,它实际上会使事情变得更加艰难。