Firebase 动态链接处理了两次
Firebase dynamic links handled twice
我遇到一个问题,当 android 应用程序重新启动时,firebase 动态 link 会重新启动。以下序列产生问题:
- 点击深linkURL
- 应用程序在深度 link 指向的视图中打开(符合预期)
- 关闭应用程序(完全)
- 从图标打开应用程序
- 应用程序在深度 link 指向的视图中打开(即使它不应该)
- 之后它工作正常
我正在使用最新的 (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 是否为 null 并检查深度 link 仅当它是时。
我也在 onNewIntent 中检查深度 link,以便在应用程序 运行 时处理它,但是当问题发生时不会调用它。
在我的清单中,具有特定协议和主机的 intent-filter 仅包含在主要 activity 中。该协议也用于其他活动的其他过滤器,但我也尝试在那些没有效果的过滤器中使用不同的协议。只有主要 activity 使用 AppInvite.AppInviteApi.getInvitation 来获取意图。即使我从所有活动中删除其他意图过滤器,也会出现问题。
有什么想法可能是错误的或我还应该检查什么吗?
您需要在您的启动器 activity 和您声明处理动态 link 的 activity 中调用 getInvitation()
。
但是在处理动态 link 的 activity 中,您需要传递 null 而不是传递 activity 作为第二个参数getInvitation()
,
像这样 AppInvite.AppInviteApi.getInvitation(mGoogleApiClient, null, autoLaunchDeepLink)
.
我遇到一个问题,当 android 应用程序重新启动时,firebase 动态 link 会重新启动。以下序列产生问题:
- 点击深linkURL
- 应用程序在深度 link 指向的视图中打开(符合预期)
- 关闭应用程序(完全)
- 从图标打开应用程序
- 应用程序在深度 link 指向的视图中打开(即使它不应该)
- 之后它工作正常
我正在使用最新的 (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 是否为 null 并检查深度 link 仅当它是时。
我也在 onNewIntent 中检查深度 link,以便在应用程序 运行 时处理它,但是当问题发生时不会调用它。
在我的清单中,具有特定协议和主机的 intent-filter 仅包含在主要 activity 中。该协议也用于其他活动的其他过滤器,但我也尝试在那些没有效果的过滤器中使用不同的协议。只有主要 activity 使用 AppInvite.AppInviteApi.getInvitation 来获取意图。即使我从所有活动中删除其他意图过滤器,也会出现问题。
有什么想法可能是错误的或我还应该检查什么吗?
您需要在您的启动器 activity 和您声明处理动态 link 的 activity 中调用 getInvitation()
。
但是在处理动态 link 的 activity 中,您需要传递 null 而不是传递 activity 作为第二个参数getInvitation()
,
像这样 AppInvite.AppInviteApi.getInvitation(mGoogleApiClient, null, autoLaunchDeepLink)
.