如何从动态链接接收字符串?

Kri*_*fer 6 android firebase

我设置了一个动态链接,您可以在其中与这样的人分享链接

Intent intent = new Intent(Intent.ACTION_SEND);
    intent.setType("text/plain");
    intent.putExtra(Intent.EXTRA_SUBJECT, "Join my group for Lesn");
    intent.putExtra(Intent.EXTRA_TEXT, "https://y28rt.app.goo.gl/?link=https://Lesn.com/joinGroup&apn=c.kristofer.jax2[&amv=21]&groupUid=" + groupUid);
    startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

正如你在链接中看到的

" https://y28rt.app.goo.gl/?link=https://Lesn.com/joinGroup&apn=c.kristofer.jax2[&amv=21]&groupUid= " + groupUid

我把额外的数据是

groupUid=" + groupUid)

我的问题是如何使用此链接从链接中接收该字符串

FirebaseDynamicLinks.getInstance()
            .getDynamicLink(getIntent())
            .addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {
                @Override
                public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
                    Uri deeplink = null;
                    if (pendingDynamicLinkData != null){
                        deeplink = pendingDynamicLinkData.getLink();
                    }


                }
            });
Run Code Online (Sandbox Code Playgroud)

编辑

所以我的问题实际上是为我的深层链接输入了错误的值。现在我已经可以使用它了,但我的另一个问题仍然存在。当我尝试记录值时,使用 deeplink.getQueryParameter("groupUid") 它返回一个空值。

pha*_*pli 4

首先,使用Uri方法从deepLink获取参数

String group = deeplink.getQueryParameter("groupUid");
Run Code Online (Sandbox Code Playgroud)

在此之前,要为 Firebase 的动态链接附加参数,必须在生成动态链接之前向主链接添加参数

private void attachParameter(String groupUid) {
    Uri link = Uri.parse("https://Lesn.com/joinGroup")
        .buildUpon()
        .appendQueryParameter("groupUid", groupUid)
        .build();
    generateDynamicLink(link.toString());
}


private void generateDynamicLink(String link) {
    Uri dynamicLink = Uri.parse("https://y28rt.app.goo.gl")
        .buildUpon()
        .appendQueryParameter("link", link)
        .appendQueryParameter("apn", "c.kristofer.jax2")
        .build();

    Log.d(TAG, "generateDynamicLink: " + dynamicLink.toString());
}
Run Code Online (Sandbox Code Playgroud)

不过我建议使用 firebase lib 而不是构建动态链接手册:

private void generateDynamicLinkWithLib(Uri link) {
    DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
        .setLink(link)
        .setDynamicLinkDomain("y28rt.app.goo.gl")
        .setAndroidParameters(new Builder().build())
        .setIosParameters(new IosParameters.Builder("c.kristofer.jax2")
            .build())
        .buildDynamicLink();

    Log.d(TAG, "generateDynamicLink: " + dynamicLink.getUri().toString());
}
Run Code Online (Sandbox Code Playgroud)