我可以让FCM数据通知在前台和后台工作,但不能在Android中关闭应用程序(我认为这是最常见的情况)。
我尝试在有效载荷中定义优先级为高,我还更改了应用程序的设置不进行电池优化(以防万一,这是避免接收和处理运行的数据通知的后台代码).没有工作.
有没有办法让它工作时,应用程序被关闭?否则,我需要做一个通知+数据消息,但这将导致问题时,应用程序被关闭,并在后台:图标将有一个坏的风格(这是一个小版本的启动图标在一个白色背景),消息不会被分组,它将没有摘要,等等.
我在Expo托管的应用程序中使用react-native-firebase + notifee(通过EAS提交到Play商店)。
在上面链接的react-native-firebase
文档中,有一个部分:
// Required for background/quit data-only messages on Android
priority: 'high',
字符串
但在我的例子中,当应用程序处于退出状态(即使定义了高优先级)时,我不会收到仅数据的消息,只有在后台(最小化)时。
1条答案
按热度按时间enyaitl31#
原因是我将
messaging().setBackgroundMessageHandler(...)
包含在useEffect()
钩子中。它必须包含在任何React组件之外,因为当应用关闭时将没有React组件(但在后台/最小化时它似乎存在)。此方法必须在应用程序生命周期的外部调用,例如,在应用程序代码的入口点与
AppRegistry.registerComponent()
方法调用一起调用。https://rnfirebase.io/messaging/usage#background--quit-state-messages
我还必须在回调中运行一些初始化步骤,这是我在应用正常启动时所做的,比如模拟Intl提供程序,以便我可以(强制地)从
react-intl
访问intl
对象,以及我所做的其他一些事情,这些事情必须进行调整,因为我不能在回调中调用钩子。