如何在后台控制 FCM 消息通知 [重复]

Posted

技术标签:

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

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

问题:

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

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

【问题讨论】:

Jatin,检查 Tim 的答案 - ***.com/a/37876727/1507602 感谢@TimCastelijns 感谢@Hishammuneer 【参考方案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 客户端,图像寻求帮助:

【讨论】:

你为什么要发布这个答案,如果你基本上同意它是重复的

以上是关于如何在后台控制 FCM 消息通知 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法拦截和禁用默认的后台 FCM 通知并在 firebase 消息传递服务工作者中显示自定义通知

iOS 模拟器或物理设备未收到 FCM 数据消息

如何使用 FCM 后台通知更新 UI?

如何跟踪FCM推送通知发送表单服务器端或Rest客户端? [重复]

FCM 未收到通知消息

如何在应用程序处于后台(ios)时使 FCM 通知正常工作?