如何在后台模式下修复Firebase通知问题

如何在后台模式下修复Firebase通知问题,firebase,push-notification,firebase-cloud-messaging,ionic3,Firebase,Push Notification,Firebase Cloud Messaging,Ionic3,当我的Ionic应用程序出现在前台时,通知就会完美地到达 当我的Ionic应用程序位于后台时,Firebase推送通知将显示系统托盘通知。按下横幅将打开应用程序并触发通知。我完全同意 但是,如果用户决定在不点击横幅的情况下打开应用程序,则不会触发通知。任何时候点击横幅都会导致通知到达应用程序 我如何解决这种情况?无论应用程序是从通知托盘中单击还是正常单击,我如何启动通知 编辑: 我发送的firebase如下所示: { "data":{ "fieldA":"A", "fi

当我的Ionic应用程序出现在前台时,通知就会完美地到达

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

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

我如何解决这种情况?无论应用程序是从通知托盘中单击还是正常单击,我如何启动通知

编辑:

我发送的firebase如下所示:

   {
  "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"
}

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

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

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

数据消息 由客户端应用程序处理


当在后台时,应用程序将在 通知托盘,并且仅在用户点击时处理数据有效负载 在通知上。在前台时,您的应用程序会收到 具有两个有效负载的消息对象

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


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

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

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

数据消息 由客户端应用程序处理


当在后台时,应用程序将在 通知托盘,并且仅在用户点击时处理数据有效负载 在通知上。在前台时,您的应用程序会收到 具有两个有效负载的消息对象

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


在不同的手机中尝试,可能这个问题就在这个手机版本中。这里有相同的问题。你找到解决方案了吗?在不同的手机上试试,也许这个问题就在这个手机版本上,这里有相同的问题。你找到解决办法了吗?编辑了我原来的问题。我正在发送数据信息。问题仍然存在-如果应用程序位于前台,则会立即接收数据有效负载;如果应用程序位于后台,则仅单击通知托盘即可打开应用程序并触发数据负载。“在后台时,应用程序在通知托盘中接收通知负载,并且仅在用户点击通知时处理数据负载。在前台时,您的应用程序接收到一个消息对象,该对象具有两个可用的有效负载。“-这不是仅适用于“通知消息”类型吗?还是适用于“数据消息”“也是吗?”编辑了我原来的问题。我正在发送数据信息。问题仍然存在-如果应用程序位于前台,则会立即接收数据有效负载;如果应用程序位于后台,则仅单击通知托盘即可打开应用程序并触发数据负载。“在后台时,应用程序在通知托盘中接收通知负载,并且仅在用户点击通知时处理数据负载。当在前台时,你的应用程序接收到一个消息对象,该对象具有两个可用的有效负载。“-这不是仅适用于“通知消息”类型吗?还是也适用于“数据消息”?