【问题标题】:How to fix Firebase notification issue while in background mode如何在后台模式下修复 Firebase 通知问题
【发布时间】:2018-01-17 14:49:31
【问题描述】:

当我的 Ionic 应用程序处于前台时,通知会完美到达。

当我的 Ionic 应用程序处于后台时,Firebase 推送通知会显示系统托盘通知。按下横幅会打开应用程序并触发通知。我完全没问题。

但是,如果用户决定打开应用程序而不点击横幅,则不会触发通知。任何时候点击横幅都会导致通知到达应用程序。

我该如何解决这种情况?无论应用程序是从通知托盘单击还是正常单击,如何才能触发通知?

编辑:

我发送的 firebase data message 如下所示:

   {
  "data":{
    "fieldA":"A",
    "fieldB" : "B",
    "fieldC" : "C",
    "total" : 1234,
    "title" : "_my_title",
    "message" : "_my_message",
    "sound" : "default",
    "cick_action": "FCM_PLUGIN_ACTIVITY"
  },
    "to":"/topics/MY_TOPIC",
    "priority":"high"
}

【问题讨论】:

  • 换个手机试试,这个问题可能就在这个手机版本
  • 这里有同样的问题。你找到解决办法了吗?

标签: firebase push-notification firebase-cloud-messaging ionic3


【解决方案1】:

确保您发送的通知是数据消息类型,而不是显示消息。

使用 FCM,您可以向客户端发送两种类型的消息:

通知消息,有时被认为是“显示消息”。 这些由 FCM SDK 自动处理。

数据消息,其中 由客户端应用处理。

https://firebase.google.com/docs/cloud-messaging/concept-options

还有

在后台时,应用会在 通知托盘,仅在用户点击时处理数据负载 在通知上。在前台时,您的应用会收到一个 两个有效负载都可用的消息对象。

还有

要接收消息,请使用扩展的服务 Firebase 消息服务。您的服务应该覆盖 onMessageReceived 和 onDeletedMessages 回调。

https://firebase.google.com/docs/cloud-messaging/android/receive

【讨论】:

  • 编辑了我原来的问题。我正在发送数据消息。问题仍然存在——如果应用程序在前台,则立即接收到数据负载;如果应用在后台,只有单击通知托盘才能打开应用并触发数据负载。
  • "在后台时,应用程序在通知托盘中接收通知负载,并且仅在用户点击通知时处理数据负载。在前台时,您的应用程序会收到一个消息对象两种有效载荷都可用。” - 这是否仅适用于“通知消息”类型?或者它也适用于“数据消息”?
猜你喜欢
  • 1970-01-01
  • 2021-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多