应用关闭时无法更新徽章计数- react原生iOS

fnvucqvd  于 2023-10-22  发布在  React
关注(0)|答案(1)|浏览(100)

我们正在使用react native firebase版本6消息来处理推送通知。从远程通知内容来看,我们无法在ios上增加/减少徽章计数。因此,我们使用push notification ios来设置标记计数。
当应用程序处于前台和后台时,它工作得很好。但是当应用程序关闭时,我们能够收到通知,但无法更新徽章计数。

messaging().onMessage(async remoteMessage => {
      Alert.alert('A new FCM message arrived!', JSON.stringify(remoteMessage));
});

messaging().setBackgroundMessageHandler(async remoteMessage => {
      PushNotificationIOS.getApplicationIconBadgeNumber(number => {
        PushNotificationIOS.setApplicationIconBadgeNumber(number + 1);
      });
      asyncstorage.saveItem("remoteMessage", "only one killed message received");
    });

这里的setBackgroundMessageBox是在后台状态下工作的。根据文档,即使在应用程序关闭时也应该调用此方法。但事实并非如此。为了更清楚地说明,当应用程序被杀死时,我在这个方法中执行了一个bloc存储操作。但它并没有像预期的那样工作。
我正在添加服务器端数据,我已经从后端发送通知,

{
"to":".................",
"notification":{
 "title":"Working Good",
 "body":"backgroudn noti",
 "badge":"1",
 "sound":"./app/assets/sound/alert.wav"
},
"priority":"high",
"badge":"1",
"content_available":true
}

我想提一下这些钥匙的几点,
通知对象中有一个徽章,即使应用程序关闭,它也会在每次关闭时设置为图标。但无法增加/减少标记计数。它总是1。
添加**“content_available”属性后,我可以更新徽章计数。这意味着在添加了content_available only之后,我在setBackgroundMessageMessage方法中获得了触发器,并使用推送通知ios属性更新了徽章计数。
现在我在应用关闭时,setBackgroundMessageArray方法中没有触发器。
setBackgroundMessageArray方法中获取触发器,是否还需要添加其他键,即使应用已关闭?
我计划尝试使用一些
后台库**,比如react-native background fetch。但是在收到通知后,如果代码中没有任何触发器,我就不能触发后台获取库来唤醒应用程序。

那么我如何才能进入这种方法,同时接收通知时,应用程序关闭?

如果需要更多的细节来澄清这个问题,请给我打电话。谢谢你的帮助

xv8emn3q

xv8emn3q1#

messaging().onMessage仅在您的应用处于后台或前台模式时工作。
如果您想在应用程序关闭时接收消息,请使用此选项:

messaging()
    .getInitialNotification()
    .then(remoteMessage => { console.log(remoteMessage) }

相关问题