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

问题描述 投票:0回答:1

我们正在使用 react 本机 firebase 版本 6 消息传递来处理推送通知。从远程通知内容来看,我们无法在 ios 上增加/减少徽章计数。因此,我们使用 推送通知 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");
    });

此处 setBackgroundMessageHandler 在应用程序处于后台状态时起作用。根据文档,即使应用程序关闭,此方法也应该调用。但事实并非如此。为了获得更多说明,当应用程序终止时,我在此方法中执行了一个异步存储操作。但它没有按预期工作。

我正在添加服务器端数据,这些数据也是我从后端发送的通知,

{
"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 后,我在 setBackgroundMessageHandler 方法中获得了触发器,并使用推送通知 ios 属性更新了徽章计数。

现在,当应用程序关闭时,我在 setBackgroundMessageHandler 方法中没有得到任何触发器。

即使应用程序已关闭,我是否需要添加任何其他键才能在 setBackgroundMessageHandler 方法中获取触发器?

我计划尝试使用一些后台库,例如react-native后台获取。但是收到通知后,如果代码中没有任何触发器,我无法触发后台获取库来唤醒应用程序。

那么我怎样才能进入这个方法,同时在应用程序关闭时收到通知?

如果需要更多详细信息来澄清问题,请联系我。感谢您的帮助。

react-native push-notification react-native-ios react-native-firebase badge
1个回答
-1
投票

messaging().onMessage
仅当您的应用程序处于后台或前台模式时才有效。

如果您想在应用程序关闭时接收消息,请使用此:

messaging()
    .getInitialNotification()
    .then(remoteMessage => { console.log(remoteMessage) }
© www.soinside.com 2019 - 2024. All rights reserved.