我正在开发一个Android应用程序,我希望用户能够使用DynamicLinks Firebase发布带有社交网络或电子邮件的帖子(如果应用程序已安装在设备中,则会直接打开帖子活动,如果不le链接将打开应用程序的Play商店页面。。我按照以下步骤操作: 1 /我在firebaseConsole中创建了一个dynamilink,我使用了“https://rc4vd.app.goo.gl/XktS”作为短链接 2 /一个按钮发送动态链接,这是代码
btnShare.setOnClickListener(new View.OnClickListener() {
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "I invite you to my challenge\n\n" + "https://rc4vd.app.goo.gl/XktS?d=" + databaseReference.getKey());
sendIntent.setType("text/plain");
startActivity(sendIntent);
}
3 /接收动态链接
FirebaseDynamicLinks.getInstance().getDynamicLink(getIntent()).addOnCompleteListener(new OnCompleteListener<PendingDynamicLinkData>() {
@Override
public void onComplete(@NonNull Task<PendingDynamicLinkData> task) {
Uri shortLink = null;
if (task.getResult() != null) {
// --> shortLink = task.getResult().getShortLink();
String postId = (shortLink.toString()).substring(shortLink.toString().indexOf("=")+1);
//[declare the intent]
Intent intent = new Intent(Home.this,MyPostPage.class);
//[Set intent extras]
intent.putExtra("ref", PostId);
//[start the activity with extras]
startActivity(intent);
}
}
}).addOnFailureListener(Home.this, new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.w(TAG, "getDynamicLink:onFailure", e);
}
});
问题是“shortLink = task.getResult()。getShortLink();”不存在,我只能有deepLink。我想知道是否有办法获得短链接,谢谢
答案 0 :(得分:0)
您应该在应用中创建一个包含目标(长)URL中的参数的动态链接,而不是在控制台中生成链接,然后附加参数。
https://firebase.google.com/docs/dynamic-links/android/create是Android API的文档页面。