我正在使用android上的firebase动态链接来在用户共享特定内容时以编程方式生成链接。
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_SUBJECT,"Subject");
sendIntent.setType("text/plain");
FirebaseDynamicLinks.getInstance().createDynamicLink()
.setLongLink(Uri.parse("https://organization.page.link/?link=https://www.organization.com/content.htm"))
.setAndroidParameters(new DynamicLink.AndroidParameters.Builder().build())
.buildShortDynamicLink()
.addOnCompleteListener((Activity) context, task -> {
if (task.isSuccessful()) {
sendIntent.putExtra(Intent.EXTRA_TEXT, task.getResult().getShortLink());
context.startActivity(Intent.createChooser(sendIntent, "Share")));
}
});
在这里一切正常,除非动态链接的接收者未安装应用程序,因此它将其重定向到网站而不是Play商店。我已经尝试过.setFallbackUrl()
,但是没有用。
答案 0 :(得分:0)
我发现了问题:
当我使用
.setLongLink(Uri.parse("https://organization.page.link/link=https://www.organization.com/content.htm"))
始终会解析链接,然后Android打开URL而不是Play Store。我已将其替换为
.setLink(Uri.parse("www.organization.com/content.htm"))
并添加
.setDynamicLinkDomain("organization.page.link")
最终密码
FirebaseDynamicLinks.getInstance()
.createDynamicLink()
.setLink(Uri.parse("https://organization.com/content.htm"))
.setDynamicLinkDomain("organization.page.link")
.setAndroidParameters(new DynamicLink.AndroidParameters.Builder().build())
.buildShortDynamicLink()
.addOnCompleteListener((Activity) context, task -> {
if (task.isSuccessful()) {
// Get Dynamic link here
}
});