Firebase动态链接,为Android以编程方式定义链接​​行为

时间:2018-06-22 09:25:35

标签: android firebase firebase-dynamic-links

我正在使用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(),但是没有用。

1 个答案:

答案 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
                                 }
                        });