【问题标题】:How to recognize firebase dynamic link before addSuccesListener?如何在 addonSuccessListener 之前识别 Firebase 动态链接?
【发布时间】:2018-05-31 10:49:50
【问题描述】:

在我的应用程序中,许多链接在同一个 Activity 中处理,

所以,我需要知道收到链接时是什么链接。

我知道成功后我会认出听众,

FirebaseDynamicLinks.getInstance()
                .getDynamicLink(intent)
                .addOnSuccessListener(activity, new OnSuccessListener<PendingDynamicLinkData>() {
                    @Override
                    public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
                        if (pendingDynamicLinkData != null) {
                            Uri deepLink = pendingDynamicLinkData.getLink();

但是,由于 UI 线程的下一个操作,我的应用程序的 UI 线程必须在成功侦听器之前知道。

所以,我会这样处理意图,

if(intent.getExtras() != null
            && intent.getExtras().toString().contains("firebase")) { // this comes from firebase dynamic links.

我可以这样处理意图吗? 而且,Firebase 框架会不会放出额外的数据,包括 firebase 字符串?

请告诉我其他解决方案好吗? 最糟糕的方法,我希望在成功回调之前知道我的应用程序的主机“(app).goo.gl”..

【问题讨论】:

  • 这样的捆绑数据,B@hashcode 改变了,所以我使用 toString().contains("firebase") Bundle[{com.google.firebase.dynamiclinks.DYNAMIC_LINK_DATA=[B@c5ac3a7, com.google.android.gms.appinvite.REFERRAL_BUNDLE=Bundle[mParcelledData.dataSize=456]}]
  • 我认为没有比您概述的方法更好的方法了。也就是说,最好的方法是您可以等待依赖的 UI 操作 - 是什么阻止了将它们放入完成侦听器中?
  • @심현용 你找到更可靠的解决方案了吗?
  • @dor506 查看这篇文章deepakdroid.medium.com/…。我在我的应用程序中使用了这种方法。

标签: android firebase firebase-dynamic-links


【解决方案1】:

您可以检查 Intent extras 是否包含特殊常量

getIntent().hasExtra("com.google.firebase.dynamiclinks.DYNAMIC_LINK_DATA")

【讨论】:

猜你喜欢
  • 2016-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-09
  • 1970-01-01
  • 2022-12-03
相关资源
最近更新 更多