【问题标题】:How do I receive a string from a dynamic link?如何从动态链接接收字符串?
【发布时间】:2018-04-30 08:49:16
【问题描述】:

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

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

正如你在链接中看到的那样

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


                }
            });

编辑

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

【问题讨论】:

  • 运气好吗??
  • @LeviAlbuquerque 还没有!

标签: android firebase


【解决方案1】:

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

String group = deeplink.getQueryParameter("groupUid");

在此之前,要将参数附加到 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());
}

但是我建议使用 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());
}

【讨论】:

  • 嘿,generateDynamicLink(link) 是什么意思?我用过这个(firebase.google.com/docs/dynamic-links/create-manually)这个
  • 是的。 generateDynamicLink 是一种遵循指南的方法。我只想指出,在您遵循本指南之前,参数已附加到您的链接中。
  • 我使用本指南 firebase.google.com/docs/dynamic-links/create-manually 手动构建我的动态链接
  • 这是我从指南中生成的所有代码,我只是复制粘贴并更改了其中的某些部分
  • 我更新了我的问题,请查看!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多