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

IOS是否会增加推送通知徽章编号?,ios,push-notification,badge,Ios,Push Notification,Badge,我需要写一个应用程序,可以显示图标上的徽章号码 我能够接收推送通知,并且徽章编号也显示为5 但是,当在应用程序尚未启动时收到第二次推送通知时,徽章仍显示5 它不应该是10?iOS不会将您发送到应用程序的徽章号码相加。它只显示从服务器发送的最新徽章编号。如果要显示的是徽章编号,服务器应发送徽章编号为10的推送通知。您需要从服务器发送更新的徽章编号。然后将显示更新的编号。iOS不做求和,它只显示数字 您可以使用附加到推送通知的aps字典来控制徽章编号。 有一个badge键可以用来设置正确的计数-但推

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

我能够接收推送通知,并且徽章编号也显示为5

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


它不应该是10?

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

您需要从服务器发送更新的徽章编号。然后将显示更新的编号。iOS不做求和,它只显示数字

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

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

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]
根据应用程序逻辑,您需要将其放置在不同的位置,但最常见的用法是在应用程序变为活动状态时这样做

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

发送通知的服务器必须将数字设置为10,而不是您。
有关更多信息,请参见此处:

如果有一个短信应用程序,其中2条短信被读取,3条新收到的短信是否会显示正确的值,它是如何工作的?@Dickens SMS是一种不同的机制,与推送通知无关。服务器应该知道应用程序的每个实例有多少条未读消息(应用程序应该在启动时通知服务器有多少条消息已读/未读。在读取所有消息时,它可以将徽章计数重置为0)。否,它假定为您通过推送通知发送的确切数量;iOS会按原样显示徽章上的数字,但不会进行任何算术计算。你必须承认苹果在这方面非常愚蠢,所以你必须在服务器端管理它,顺便说一句,不知道应该显示多少徽章的一方-逻辑如下:)问题是,您在联机时会收到推送通知,但如果您脱机并打开应用程序,则无法告诉服务器需要重置通知计数,所以我猜如果你离线使用你的应用程序,你将不得不让通知计数不同步。当服务器离线时,无论用户是否看到消息,我如何更新服务器?稍后我如何获得更新的徽章计数?