【问题标题】:How to get control of FCM message notification in background [duplicate]如何在后台控制 FCM 消息通知 [重复]
【发布时间】:2016-07-12 07:00:30
【问题描述】:

我已在我的应用程序中实施 FCM Firebase 云消息传递。 当应用程序处于前台模式时,我收到通知及其数据。

问题:

当我的应用程序处于后台模式或被杀死时,通知到达,但 FCM 会自动生成。所以我无法控制到达的通知数据(通知的自定义数据字段)。 当应用处于后台模式和通知到达时,MyFirebaseMessagingService 类的 onMessageReceived(RemoteMessage remoteMessage) 方法不会调用。

请帮助在两种模式下获得通知控制(与 GCM 相同)

【问题讨论】:

标签: java android android-notifications firebase-cloud-messaging


【解决方案1】:

问题:

当我的应用程序处于后台模式或当时被杀死时通知 到达,但它由 FCM 自动生成。所以我无法控制到达 通知数据(通知的自定义数据字段)。 onMessageReceived(RemoteMessage remoteMessage) 方法 当应用程序处于后台模式时,MyFirebaseMessagingService 类不会调用 并且通知到达。

请帮助在两种模式下获得通知控制(与 GCM 相同)

如果您使用 Firebase 控制台发送通知,则您无法控制通知。如果应用程序处于后台或被终止,则从 Firebase 控制台发送的通知不会在 onMessageReceived() 方法中传递。

解决办法:

使用 curl 请求发送通知,并且不发送通知有效负载,而是发送数据有效负载。

HTTP POST 请求

https://fcm.googleapis.com/fcm/send
Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA

{ "data": {
    "score": "5x1",
    "time": "15:10"
  },
  "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."
}

无论您的应用是在后台、前台还是被终止,上述通知都将在 onMessageReceived() 方法中传递。

尝试使用高级 REST 客户端,图像寻求帮助:

【讨论】:

  • 你为什么要发布这个答案,如果你基本上同意它是重复的
猜你喜欢
  • 2018-05-25
  • 1970-01-01
  • 1970-01-01
  • 2017-10-27
  • 2017-05-18
  • 2017-12-14
  • 1970-01-01
  • 2022-08-15
  • 2017-02-23
相关资源
最近更新 更多