我可以在前台和后台获取仅包含 FCM 数据的通知,但当应用程序在 Android 中关闭(滑开)时则无法获取(我认为这是最常见的情况)。
我尝试将有效负载中的优先级定义为高,并且我还更改了应用程序的设置,而不是电池优化(以防万一避免接收和处理数据通知的后台代码运行)。没有任何效果。
有没有办法让它在应用程序关闭时工作?否则,我需要发出通知+数据消息,但这会在应用程序关闭并在后台时导致问题:图标的样式会很差(它是白色背景中的启动图标的小版本),消息不会被分组,不会有摘要等等...
我在 Expo 托管应用程序中使用 react-native-firebase + notifee(通过 EAS 提交到 Play 商店)。
在上面链接的
react-native-firebase
文档中,有一个部分:
// Required for background/quit data-only messages on Android
priority: 'high',
但就我而言,当应用程序处于退出状态时(即使定义了高优先级),仅在后台(最小化)时,我不会收到纯数据消息。
原因是我将
messaging().setBackgroundMessageHandler(...)
包含在 useEffect()
钩子内。它必须包含在任何 React 组件之外,因为当应用程序关闭时不会有 React 组件(但它似乎在后台/最小化时存在)。
此方法必须在应用程序生命周期的外部调用,例如 与您的
方法调用一起 您的应用程序代码的入口点。AppRegistry.registerComponent()
https://rnfirebase.io/messaging/usage#background--quit-state-messages