我需要编写一个可以在图标上显示徽章编号的应用程序。
我可以收到推送通知,徽章编号也显示为5。
但是,当应用程序尚未启动时收到第二个推送通知时,徽章仍会显示5。
不应该是10?
答案 0 :(得分:6)
iOS
不会将您发送到应用的徽章编号相加。它只显示从您的服务器发送的最新徽章编号。如果您要显示徽章编号,则服务器应发送徽章编号为10的推送通知。
答案 1 :(得分:2)
发送通知的服务器必须将数字设置为10,而不是您。 有关详细信息,请参阅此处:https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/APNSOverview.html#//apple_ref/doc/uid/TP40008194-CH8-SW1
答案 2 :(得分:1)
您可以使用附加到推送通知的aps
字典来控制徽章编号。
您可以使用badge
密钥来设置正确的计数 - 但是计算推送通知的数量必须在服务器端完成 - iOS不会自动执行此操作。
Checkout the APS reference table 9-1 here
要重置徽章计数,您应该使用UIApplication方法。
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]
根据应用程序逻辑,您需要将其放在不同的位置,但最常见的用法是在应用程序变为活动状态时执行此操作。
- (void)applicationWillEnterForeground:(UIApplication *)application
{
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]
}
答案 3 :(得分:0)
您需要从服务器发送更新的badgeNumber。然后会显示更新的号码。 iOS不进行求和,只显示数字。