我设置了动态链接,您可以与此人分享链接
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(&#34; groupUid&#34;),当我尝试记录该值时,它返回null。
答案 0 :(得分:3)
首先,使用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而不是build dynamic link manual:
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());
}