在 iPhone 中获取推送通知时徽章图标不会增加?
Posted
技术标签:
【中文标题】在 iPhone 中获取推送通知时徽章图标不会增加?【英文标题】:Badge Icon doesn't increase when getting PushNotification in iPhone? 【发布时间】:2014-04-21 10:09:50 【问题描述】:我有一个带有 Apple 推送通知的应用程序,但问题是当推送到达时,徽章应用程序图标不会增加。
谁能告诉我如何增加应用程序的徽章?
我正在使用以下代码:
-(void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo
NSString* alertValue = [[userInfo valueForKey:@"aps"] valueForKey:@"badge"];
NSLog(@"my message-- %@",alertValue);
int badgeValue= [alertValue intValue];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:[[UIApplication sharedApplication] applicationIconBadgeNumber]+ badgeValue];
谢谢
【问题讨论】:
【参考方案1】:您不能在推送通知中发送++
。您需要在推送通知负载中提供准确的徽章计数,并在服务器端管理徽章计数。
【讨论】:
你需要有一个每个用户的数据库,并记住计数。我不知道您的应用程序具体做什么,但您需要考虑如何实现。例如,消息应用程序会随着每条新消息增加服务器上的徽章计数,并在用户打开应用程序时将其设置为 0。 我们在 php 代码中设置了以下代码。 "aps" : "alert" : "这是警报文本", "badge" : 1, "sound" : "default" 我也尝试使用 +1,但没有任何反应?我怎样才能增加它? 你需要有一个数据库,增加数据库,当你构建payload时,你需要设置正确的数字(1 or 2 or 3 or 4 or 5 or ...)。跨度> 【参考方案2】:试试这个代码:
NSInteger numberOfBadges = [UIApplication sharedApplication].applicationIconBadgeNumber
numberOfBadges +=1;
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:numberOfBadges];
【讨论】:
【参考方案3】:关于如何做你想做的事,Leo 是对的。
要知道的是,您拥有的任何代码都无关紧要。只有在收到推送通知时应用程序处于打开状态时,该代码才会被激活。如果应用未打开,则不会运行任何代码。
您可能想要研究的另一种可能性是仅数据推送,其中包含您想要的非 APS 元数据块中的徽章增量。然后您可以在数据推送中任意指定增量,并激活代码来处理内容。但很有可能你真的需要按照 Leo 的建议去做,否则你怎么知道增加徽章的正确数量?
【讨论】:
以上是关于在 iPhone 中获取推送通知时徽章图标不会增加?的主要内容,如果未能解决你的问题,请参考以下文章