我设置了一个动态链接,您可以在其中与这样的人分享链接
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") 它返回一个空值。
首先,使用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)