android 当应用关闭(滑动)时,不会显示仅FCM数据通知

r3i60tvu  于 11个月前  发布在  Android
关注(0)|答案(1)|浏览(98)

我可以让FCM数据通知在前台和后台工作,但不能在Android中关闭应用程序(我认为这是最常见的情况)。
我尝试在有效载荷中定义优先级为高,我还更改了应用程序的设置不进行电池优化(以防万一,这是避免接收和处理运行的数据通知的后台代码).没有工作.
有没有办法让它工作时,应用程序被关闭?否则,我需要做一个通知+数据消息,但这将导致问题时,应用程序被关闭,并在后台:图标将有一个坏的风格(这是一个小版本的启动图标在一个白色背景),消息不会被分组,它将没有摘要,等等.
我在Expo托管的应用程序中使用react-native-firebase + notifee(通过EAS提交到Play商店)。
在上面链接的react-native-firebase文档中,有一个部分:

// Required for background/quit data-only messages on Android
priority: 'high',

字符串
但在我的例子中,当应用程序处于退出状态(即使定义了高优先级)时,我不会收到仅数据的消息,只有在后台(最小化)时。

enyaitl3

enyaitl31#

原因是我将messaging().setBackgroundMessageHandler(...)包含在useEffect()钩子中。它必须包含在任何React组件之外,因为当应用关闭时将没有React组件(但在后台/最小化时它似乎存在)。
此方法必须在应用程序生命周期的外部调用,例如,在应用程序代码的入口点与AppRegistry.registerComponent()方法调用一起调用。
https://rnfirebase.io/messaging/usage#background--quit-state-messages
我还必须在回调中运行一些初始化步骤,这是我在应用正常启动时所做的,比如模拟Intl提供程序,以便我可以(强制地)从react-intl访问intl对象,以及我所做的其他一些事情,这些事情必须进行调整,因为我不能在回调中调用钩子。

相关问题