【问题标题】:Firebase dynamic links handled twiceFirebase 动态链接处理了两次
【发布时间】:2016-06-06 08:14:08
【问题描述】:

我有一个问题,即重新启动 android 应用程序时会重新启动 firebase 动态链接。以下序列产生问题:

  1. 点击深层链接网址
  2. 应用程序在深层链接指向的视图中打开(如预期的那样)
  3. 关闭应用程序(完全)
  4. 从图标打开应用
  5. 应用会在深层链接指向的视图中打开(即使不应该这样做)
  6. 之后一切正常

我正在使用最新的 (9.0.2) 库。代码与示例中的代码非常相似(例如:https://firebase.google.com/docs/dynamic-links/android#add-an-intent-filter-for-deep-links),autoLaunchDeepLink 为 false。

  • 我注意到有一个错误导致此问题,但应在当前版本中修复: https://github.com/googlesamples/google-services/issues/141

  • 按照 github 错误报告中的说明,我尝试了两次调用 AppInvite.AppInviteApi.getInvitation 的解决方法。没有成功。

  • 在 onCreate 中,我正在检查 savedInstance 是否为空,并且仅在它为空时才检查深层链接。

  • 我也在 onNewIntent 中检查深层链接,以便在应用程序运行时对其进行处理,但是当问题发生时不会调用它。

  • 在我的清单中,具有特定协议和主机的意图过滤器仅包含在主要活动中。该协议也用于其他活动的其他过滤器,但我也尝试在没有效果的那些过滤器中使用不同的协议。只有主要活动使用 AppInvite.AppInviteApi.getInvitation 来获取意图。即使我从所有活动中删除其他意图过滤器,也会出现问题。

有什么想法可能是错误的或我还应该检查什么吗?

【问题讨论】:

    标签: android firebase firebase-dynamic-links


    【解决方案1】:

    您需要在您的启动器活动和您声明处理动态链接的活动中调用getInvitation()

    但是在处理动态链接的activity中,你需要传递null,而不是传递activity作为getInvitation()的第二个参数, 像这样AppInvite.AppInviteApi.getInvitation(mGoogleApiClient, null, autoLaunchDeepLink)

    【讨论】:

    • 这行得通,谢谢。但是,在我的情况下,启动器活动和我声明处理动态链接的活动是相同的,所以这实际上与“我尝试通过调用 AppInvite.AppInviteApi.getInvitation 两次来解决方法,如 github 错误报告中所述. 没有成功。”。我只是错过了将 null 作为第二个参数。
    • 看来这个bug毕竟没有修复。仍然需要解决方法。
    猜你喜欢
    • 2021-09-26
    • 2018-01-22
    • 1970-01-01
    • 2020-05-12
    • 1970-01-01
    • 2020-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多