【发布时间】:2016-10-19 18:00:24
【问题描述】:
我正在使用 Android 中的 Firebase 数据库开发一个聊天应用程序。
我已经完成了核心(聊天和用户列表活动),但我还没有完成通知系统。
我想在使用 Firebase 时实现 Google FCM,但我发现其中有一个漏洞,因为我似乎根本无法处理发送到不在前台的 iOs 应用程序的所有通知。
如在Data notification documentation中找到的
在 iOS 上,FCM 存储消息并仅在应用处于前台并已建立 FCM 连接时传递消息。在 Android 上,客户端应用程序在 onMessageReceived() 中接收数据消息,并可以相应地处理键值对。
即使应用程序在后台,我也需要捕捉数据通知,我特别需要它,因为我想更新应用程序图标上的徽章计数器,让用户知道他有多少未读消息。
我现在正在尝试OneSignal 解决方案即使在后台也可以接收通知,它是免费的并且与 GCM 接口。我很遗憾没有留在 Google,但如果我无法使用 FCM 更新徽章计数,我就不得不另眼相看。
任何考虑将不胜感激。
【问题讨论】:
-
但 OneSignal 有完全相同的限制,因为这不是 Google 的错,而是 Apple 的设计决定。在 iOS 9 之前,您根本无法在后台处理收到的远程通知。只有在新的 iOS 10 中,Apple 才允许这样做。此外,当通知到达时,系统会自动更新徽章。
-
Receiving Notifications OSHandleNotificationReceivedBlock 当应用收到通知时调用。注意:仅当您的应用处于焦点时才会调用此方法。 如果您需要在您的应用处于后台时调用它,以便在您发送通知时将 content_available 设置为 true。 - 如果 fcm 默认提供此功能,我只需要使用该功能进行徽章计数我可以坚持下去。
标签: android ios notifications