我无法检索应在 Android 上的意图数据内的 Firebase 动态链接
Posted
技术标签:
【中文标题】我无法检索应在 Android 上的意图数据内的 Firebase 动态链接【英文标题】:I cannot retrieve the Firebase dynamic link that should be inside the intent data on Android 【发布时间】:2017-12-08 15:01:45 【问题描述】:当用户在 android 上点击它时,我需要检索短动态链接。但是,当用户点击链接时,我只会在使用 Firebase 上的默认实现时收到深层链接。
当我使用不同的方法(使用 Get Query)时,我收到了空值。
请指教。
Short dynamic link on firebase
FireBase 实施:
FirebaseDynamicLinks.getInstance()
.getDynamicLink(getIntent())
.addOnSuccessListener(SplashActivity.this, new OnSuccessListener<PendingDynamicLinkData>()
@Override
public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData)
// Get deep link from result (may be null if no link is found)
Uri deepLink = null;
if (pendingDynamicLinkData != null)
deepLink = pendingDynamicLinkData.getLink();
Log.e("R4L0",String.valueOf(deepLink));
Log.e("R4L1",String.valueOf(getIntent().getData()));
Log.e("R4L2",pendingDynamicLinkData.toString());
// Handle the deep link. For example, open the linked
// content, or apply promotional credit to the user's
// account.
// ...
// ...
)
.addOnFailureListener(SplashActivity.this, new OnFailureListener()
@Override
public void onFailure(@NonNull Exception e)
Log.w("R4L", "getDynamicLink:onFailure", e);
);
Get uri implementation:
Uri appLinkData = getIntent().getData();
if (!appLinkData.equals(Uri.EMPTY))
Log.e("R4L","URL "+String.valueOf(appLinkData.getQuery()));
String CurrentString = String.valueOf(appLinkData.getQuery());
String[] separated = CurrentString.split("\\?");
String[] linkData=separated[1].split("=");
if (linkData[0].equals("offer"))
Log.d("separated",separated[1]);
Intent intent = new Intent(SplashActivity.this,Display_Clicked_Offer_Info.class);
intent.putExtra("IDITEM",separated[1]);
startActivity(intent);
finish();
else if(linkData[0].equals("shop"))
Using Get Query
【问题讨论】:
能否附上你拥有的相关代码? 我已经编辑了以上内容 【参考方案1】:这不起作用的原因是短链接没有查询组件!
Firebase 动态链接短链接的格式为:https://appcode.app.goo.gl/Ab1D
- 所以实际的短代码是路径的一部分。
在后台,Firebase 将该短链接发送到动态链接 API,并将其解析回一个长 URL。长网址很可能有查询参数。
【讨论】:
那么在android中接收时我可以从短链接获取/Ab1D吗? 你可以,但你不应该需要 - 短链接应该解析为它包装的长链接,然后你查看那个 URL 其实我需要验证短链接是否过期。没有短链接,我无法确定点击的链接是否有效以上是关于我无法检索应在 Android 上的意图数据内的 Firebase 动态链接的主要内容,如果未能解决你的问题,请参考以下文章
如何在Unity3d游戏中检索Android安装引荐来源网址