【问题标题】:Firebase Dynamic links always returned CANCELEDFirebase 动态链接始终返回 CANCELED
【发布时间】:2016-06-04 17:53:01
【问题描述】:

我正在为我的应用使用动态链接。

我已逐步按照教程进行操作,并且可以通过单击 facebook 上发布的链接打开应用程序。

但是当我调用 getInvitation 时,我总是将 CANCELED 作为 AppInviteInvitationResult 的状态。

    AppInvite.AppInviteApi.getInvitation(mGoogleApiClient, this, false).setResultCallback(
            new ResultCallback<AppInviteInvitationResult>() {
                @Override
                public void onResult(@NonNull AppInviteInvitationResult result) {
                    if (result.getStatus().isSuccess()) {
                        // Extract deep link from Intent
                        Intent intent = result.getInvitationIntent();
                        String deepLink = AppInviteReferral.getDeepLink(intent);

                        // [END_EXCLUDE]
                    } else {
                        Log.d("StartActivity", "getInvitation: no deep link found.");
                    }
                }
            });

进入调试,我可以看到result.getStatus()返回CANCELED,但是点击舔打开应用正确。

我哪里错了?

编辑:我使用的链接是: https://wft4z.app.goo.gl/?link=https://aqld.it/testlink/112972&al=aqld://test/about?params%3D17363&apn=com.project.mydeeplink

清单上的过滤器:

【问题讨论】:

  • 您的 url 看起来如何(打开后,完整大小的 url)?如果您将其添加到您的问题中,我将更容易分析可能出了什么问题。另外,您何时/在何处调用获取邀请?
  • 我编辑我的问题。
  • apn 在你的网址中出现了两次,我想知道这是否有任何影响?我也应该要求提供意图过滤器,但是如果您的应用程序包是 com.project.deeplink 并且清单中意图过滤器中的数据看起来像这样: 他们应该没问题。如果意图过滤器差异很大,那很可能是个问题。
  • 我试过没有成功。我已经用更多信息更改了我的问题。

标签: android firebase deep-linking firebase-dynamic-links


【解决方案1】:

当没有收到意图时,状态被取消。我想知道同样的事情,结果发现我在 firebase 网页中创建的链接是错误的。我写了一些关于如何调试 url 问题的想法作为另一个问题的答案。如果您遇到和我一样的问题,他们应该会有所帮助:

https://stackoverflow.com/a/37615175/4025606

【讨论】:

  • 能否请您显示 mGoogleApiClient 的初始化。是否添加了 AppInvite.API?
【解决方案2】:

没有直接回答您的问题,但您可以通过使用此页面为 ios 和 Android 创建 Firebase 动态链接来消除格式错误的网址作为根本原因:http://fdl-links.appspot.com/

【讨论】:

  • 我试过了,不行。我正在尝试使用不在 Play 商店中的应用,这可能是问题所在?
  • 我也有同样的问题。打开链接后应用程序启动,但回调总是被取消。但是我的应用在 Playstore 上。
【解决方案3】:

只需仔细检查您是否在 Firebase 控制台中添加了 SHA-1,并且添加的 SHA-1 与生成的 APK 的 SHA1 匹配。我看到了同样的问题 - result.getStatus() 在此之前返回 CANCELED,但是在 firebase 控制台上添加 SHA-1 后,它开始正常工作。 :)

【讨论】:

  • 您好,感谢您的回答。我已经验证并且正确添加了 SHA1。
猜你喜欢
  • 1970-01-01
  • 2021-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-03
  • 1970-01-01
相关资源
最近更新 更多