IOS 会增加推送通知徽章编号吗?

Will IOS increment a push notfication badge number?

我需要编写一个可以在图标上显示徽章编号的应用程序。

我能够收到推送通知,徽章号码也显示为 5。

但是,当应用程序尚未启动时收到第二个推送通知时,徽章仍然显示 5。

不应该是 10 吗?

iOS 不会对您发送到应用程序的徽章编号求和。它只显示从您的服务器发送的最新徽章编号。如果这是您要显示的徽章编号,您的服务器应该发送徽章编号为 10 的推送通知。

您需要从您的服务器发送更新的 badgeNumber。然后将显示更新的号码。 iOS 不求和,只显示数字。

您可以使用附加到推送通知的 aps 字典来控制徽章编号。 有一个 badge 键可用于设置正确的计数 - 但必须在服务器端计算推送通知的数量 - iOS 不会自动执行此操作。

Checkout the APS reference table 9-1 here

要重置徽章计数,您应该使用 UIApplication 方法。

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]

根据应用程序逻辑,您需要将其放置在不同位置,但最常见的用法是在应用程序激活时执行此操作。

- (void)applicationWillEnterForeground:(UIApplication *)application
{
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]
}

发送通知的服务器必须将数字设置为 10,而不是你。 有关详细信息,请参阅此处:https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/APNSOverview.html#//apple_ref/doc/uid/TP40008194-CH8-SW1