检查flutter应用上是否有未读通知

Syn*_*yze 3 firebase flutter firebase-cloud-messaging

我在 Flutter 中编程了一段时间,但在通过 Firebase 处理来自服务器的通知时遇到了问题。

问题是,如果我在应用程序关闭或在后台时收到通知并且我没有点击它,则不会触发任何代码来解释传入的数据。另一方面,当它在前台或被点击时,一切正常。显然,这不是 Firebase 问题。

那么当通知数据没有被点击时如何处理呢?

例如:我在上网时收到其他用户的聊天消息。如果我不单击通知打开聊天(丢弃它或只是忽略并手动打开应用程序),消息将不会保存在本地数据库中。

onResume 和 onLaunch 函数仅在用户单击通知时调用。

如果有未读通知我想检查应用程序简历,但我不知道如何执行此操作。

任何帮助将不胜感激。谢谢!

Fra*_*len 5

Firebase Cloud Messaging 中有两种类型的消息

  • 通知消息,有时被认为是“显示消息”。这些由 FCM SDK 自动处理。
  • 数据消息,由客户端应用程序处理。

当您的应用程序未激活时,系统会显示通知消息。如果用户没有点击通知,你的应用程序就无法知道消息是否已经收到。

如果您的用例要求您的应用知道此类消息,则您应该使用数据消息。总有交付到您的应用程序。这也意味着您的应用可以决定是否向用户显示通知。

第三种选择是发送组合的通知/数据消息。您可以通过在发送到 FCM 的消息有效负载中同时包含 anotification和一个data属性来实现此目的。