我正在研究将推送通知发送到本机应用程序并阅读expo文档的方法,但我对似乎彼此矛盾的两点信息感到困惑。

通知将显示在系统通知栏中
出乎意料,然后​​点击它们即可打开 / 前台应用程序。

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

但是在“为什么不博览会”部分中指出:

Expo应用程序不支持后台代码执行(在运行时运行代码
应用未前景显示或设备正在休眠)。这意味着你
无法使用背景地理位置,无法在后台播放音频,
在后台等中处理推送通知。

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

这似乎是自相矛盾的,因为“前景”或“打开”应用程序暗含了它在后台运行的方式。

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

最佳答案

确实,将应用程序前台听起来听起来好像该应用程序正在后台积极运行,因此可以运行代码,但是正如文档所指出的那样,这不是,目前仅在Expo上可行。这意味着在后台运行应用程序时无法更改徽章计数。

另一方面,当应用程序处于前台或打开通知时,根据this table in the documentation,这变得可行。

可以使用 Notifications.setBadgeNumberAsync(number) 在iOS上设置任意徽章计数,而对于Android来说,the only option available是使发送的推送通知计入给定频道的徽章计数。

10-08 11:48