在后台和前台使用 Expo 更改推送通知中的徽章计数

Pet*_*ter 4 android push-notification ios react-native expo

我正在研究向本机应用程序发送推送通知的方法并阅读博览会文档,我对两条似乎相互矛盾的信息感到困惑。

通知将按照您的预期出现在系统通知托盘中,点击它们将打开/前台应用程序。

(来源: https: //docs.expo.io/versions/latest/guides/push-notifications

但在“为什么不参加世博会”一节中指出:

Expo 应用程序不支持后台代码执行(当应用程序非前台或设备处于睡眠状态时运行代码)。这意味着您无法使用后台地理定位、在后台播放音频、在后台处理推送通知等。

(来源:https ://docs.expo.io/versions/latest/introduction/why-not-expo )

这似乎是矛盾的,因为“前景化”或“打开”应用程序意味着它在我看来是在后台运行的。

最后,我想用这个更改应用程序图标的通知徽章,但鉴于此信息,我不清楚这是否可能?在 IOS 和 Android 中?

Sia*_*vas 5

事实上,将应用程序放在前台听起来好像应用程序在后台主动运行,因此可以运行代码,但正如文档所述,目前仅靠 Expo 是不可行的。这意味着当应用程序处于后台时无法更改徽章计数。

另一方面,当应用程序位于前台或通知正在打开时,根据文档中的此表,这变得可行。

在 iOS 上设置任意徽章计数可以使用 完成Notifications.setBadgeNumberAsync(number),而对于 Android,唯一可用的选项是使发送的推送通知计入给定通道的徽章计数。