Firebase Dynamic links ,以编程方式为 Android 定义 link 行为

Firebase Dynamic links , Define link behaviour programmatically for Android

我正在 android 上使用 firebase 动态 links 以在用户共享特定内容时以编程方式生成 links。

   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")));
                    }
                });

这里一切正常,除非动态 link 的接收者没有安装应用程序,因此它将他重定向到网站而不是 Play 商店。我已经尝试 .setFallbackUrl() 但它不起作用。

我发现了问题:

当我使用

.setLongLink(Uri.parse("https://organization.page.link/link=https://www.organization.com/content.htm"))

link 始终得到解决,然后 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
                                 }
                        });