未在终止状态下调用setBackgroundMessageHandler



我在react本机应用程序中使用firebase/messaging来接收来自firebase的仅限数据的通知。

当收到消息时,我会处理数据,更新我的状态,并在应用程序处于后台或终止时显示带有本地推送通知的本地通知。

messaging().setBackgroundMessageHandler(async remoteMessage => {
PushNotification.localNotification({...})
})

在安卓设备上,前台、后台和终止状态下一切都很完美。

在iOS中,前台和后台都可以工作。

当应用程序终止时,我可以在控制台中记录通知(见下文(,并且有通知声音。但没有本地通知出现。

当我尝试登录iOS设备时,控制台会打印以下输出

default 03:51:53.697535+0100 dasd Daemon Canceling Activities: {(
com.apple.pushLaunch.de.myapp.app:D1FAA2
)}
default 03:51:53.697770+0100 dasd CANCELED: com.apple.pushLaunch.de.myapp.app:D1FAA2 at priority 10 <private>!

我从服务器收到的消息是:

const message = {
data: {
body: JSON.stringify(msgBody),
title: title,
},
contentAvailable: true,
priority: "high",
android: {
priority: "high",
},
apns: {
headers: {
"apns-priority": "10",
"apns-push-type": "alert", //already tried background too
"apns-topic": "de.myapp.app",
},
payload: { aps: { sound: "default", contentAvailable: true } },
},

tokens: userTokens,
};

这让我好几天都快疯了,我无法让它发挥作用。感谢您的每一次帮助

找到了

Version 7.18.0 - August 13, 2020 Cloud Messaging
Deprecated setBackgroundMessageHandler. Use the new API onBackgroundMessage instead.

https://firebase.google.com/support/release-notes/js#cloud-messaging_2

查看他们的文档,他们提到系统在某些条件下有意持有,而不限于…

  • 当系统收到新的后台通知时,它会丢弃旧的通知,并且只保存最新的通知。

  • 如果某个强制退出或终止应用程序,系统将丢弃
    保留的通知。

  • 如果用户启动应用程序,系统会立即发送
    已持有的通知。

https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app

相关内容

  • 没有找到相关文章

最新更新