【发布时间】:2018-05-20 18:56:47
【问题描述】:
当我创建包含 UTM 参数的动态链接并共享它时,我能够从链接中检索数据和编码查询。但是,当我尝试使用 firebase 推荐的方法创建动态链接的短链接时,我只能检索路径,而不能检索编码查询。如何解决?
创建动态链接的方法:
public void buildReferral() {
DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
.setLink(Uri.parse("sample link"))
.setDynamicLinkDomain("sample domain")
.setAndroidParameters(
new DynamicLink.AndroidParameters.Builder("com.package.my")
.build())
.setGoogleAnalyticsParameters(
new DynamicLink.GoogleAnalyticsParameters.Builder()
.setSource("referral")
.setContent("content")
.setMedium("Android")
.build())
.buildDynamicLink();
buildShortUrl(dynamicLink);
}
创建短链接的方法:
public void buildShortUrl(DynamicLink dynamicLink) {
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
.setLongLink(Uri.parse(dynamicLink.getUri().toString()))
.buildShortDynamicLink()
.addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() {
@Override
public void onComplete(@NonNull Task<ShortDynamicLink> task) {
if (task.isSuccessful()) {
// Short link created
Uri shortLink = task.getResult().getShortLink();
Uri flowchartLink = task.getResult().getPreviewLink();
} else {
// Error
// ...
}
}
});
}
【问题讨论】:
-
您如何分享缩短的链接?将其传递给
AppInviteInvitation.IntentBuilder().setDeepLink()? -
Intent intent = new AppInviteInvitation.IntentBuilder("Share via") .setMessage(getString(R.string.referral_text)) .setDeepLink(shortLinkUri) .setCallToActionText("Install") .build(); startActivityForResult(意图,100);这就是短链接的共享方式。 @BobSnyder
-
我的经验是 AppInvite 会缩短您传递给
setDeepLink()的链接。我认为在传递给setDeepLink()之前缩短它没有任何价值。我可以发送带有参数的长链接,查看收到的短链接,并从收到的动态链接数据中的 URI 中提取参数。 -
我无法使用 firebase 邀请通过 WhatsApp 邀请用户。因此我想缩短链接并通过 Intent 通常将其分享给 WhatsApp。有没有办法使用 firebase 分享到 WhatsApp 的链接?
-
我不知道 WhatsApp。我猜你可以在做的时候缩短链接并将其嵌入到短信中。在我的应用中,如果用户想使用 Firebase 邀请发送动态链接,我会发送长链接。或者用户可以使用短信或电子邮件分享链接。对于这些情况,我会像您一样缩短链接。
标签: firebase firebase-dynamic-links firebase-invites