Firebase跨平台推送通知插件重复MainActivity

时间:2019-07-25 10:11:02

标签: firebase xamarin xamarin.forms firebase-cloud-messaging

我正在使用以下plugin在我的xamarin应用程序中实现和处理 FCM 推送通知,我面临着一个未解决的小问题。

我希望其他人已经弄清楚了,可以为我提供帮助。

问题:

尽管我将MainActivity设置为LaunchMode,但似乎在复制我的SingleTop

该库提供了一个名为 OnNotificationReceived 的事件。 当应用程序位于前台时,此事件将按预期触发,仅触发一次

当我最小化应用程序时(让它在后台运行),将通知发送到设备并点击通知,它将按预期方式打开应用程序,但是如果在此之后我发送另一个通知,则应用程序处于在前景中, OnNotificationReceived 事件被触发两次

  • 我尝试将 NotificationActivityFlags 属性更改为SingleTop。

  • 我尝试将MainActivity的启动模式更改为SingleTop

  • 我尝试运行他们提供的示例应用程序,以检查它是否做错了什么,并且仍然发生相同的事情。

  • issue记录在其Github存储库中

以上均无效。

可以通过以下方式重现该问题:

  1. 从存储库下载样本,上面提供了链接

  2. 从Firebase用您自己的文件替换其google-services.json文件
    安慰。

  3. 将应用程序示例的程序包名称更改为您自己的 已在Firebase上注册

  4. 按照我上面提到的步骤进行操作

其他信息

  • 插件版本号: 1.3.0
  • 经过测试的设备:华为P8 Lite Android 6.0版
  • VS版本: Visual Studio 2019
  • Xamarin的版本: 3.4.0.1009999

1 个答案:

答案 0 :(得分:0)

我希望这对以后的人有所帮助,否则我希望有人可以为我提供更好的解决方案。

解决方法:

为了吃蛋糕,基本上可以将通知对象保留在有效负载中而不是将其删除,并且必须进一步自定义有效负载以仅显示iOS通知,我更改了MainActivity的(用户点击通知时启动的活动)启动模式为SingleInstance。这样,我可以将通知对象保留在有效负载中,而不必担心两次触发 OnNotificationReceived 事件。