我们有一个后端服务器,向Android和iOS设备发送带有数据有效载荷的FCM推送通知。我正在开发Android应用程序。当应用程序在前台时,onMessageReceived被调用,并且可以从RemoteMessage中检索到数据。当应用程序在后台时,会发布系统通知。用户点击此通知,数据可以从Intent extras中检索到。一切正常。
我正在尝试解决的问题是当应用程序在后台或关闭时,多个通知同时到达的情况下如何处理。期望的行为是“吸入”任何活动通知并能够检索其数据有效载荷。我可以使用NotificationManager(API >=23)获取并清除(取消)活动通知,或实现NotificationListenerService。但我无法找到一种方法来获取与它们关联的数据有效载荷。StatusBarNotification.getNotification().extras似乎很有希望,但其中不包含数据。我甚至使用Android Studio调试器检查了从getActiveNotifications()返回的通知,但没有找到任何内容。
根据我的研究,我认为“正确”的答案是针对iOS推送发送“通知”部分,但在Android推送中省略它(即仅使用数据),然后在我的应用程序不在前台时在设备上本地发布自己的通知。然后,onMessageReceived应该始终被调用,我可以保存数据有效载荷并完全控制。但是,我不确定我们是否可以更改后端服务器以支持Android / iOS路径的拆分。而且从我读到的内容来看,如果应用程序被杀死,则存在某些设备上服务未被调用的问题。
因此,有没有人知道如何检索其他活动通知的数据有效载荷?或者有没有其他方法可以在不需要后端服务器更改的情况下进行操作?
谢谢!
我正在尝试解决的问题是当应用程序在后台或关闭时,多个通知同时到达的情况下如何处理。期望的行为是“吸入”任何活动通知并能够检索其数据有效载荷。我可以使用NotificationManager(API >=23)获取并清除(取消)活动通知,或实现NotificationListenerService。但我无法找到一种方法来获取与它们关联的数据有效载荷。StatusBarNotification.getNotification().extras似乎很有希望,但其中不包含数据。我甚至使用Android Studio调试器检查了从getActiveNotifications()返回的通知,但没有找到任何内容。
根据我的研究,我认为“正确”的答案是针对iOS推送发送“通知”部分,但在Android推送中省略它(即仅使用数据),然后在我的应用程序不在前台时在设备上本地发布自己的通知。然后,onMessageReceived应该始终被调用,我可以保存数据有效载荷并完全控制。但是,我不确定我们是否可以更改后端服务器以支持Android / iOS路径的拆分。而且从我读到的内容来看,如果应用程序被杀死,则存在某些设备上服务未被调用的问题。
因此,有没有人知道如何检索其他活动通知的数据有效载荷?或者有没有其他方法可以在不需要后端服务器更改的情况下进行操作?
谢谢!