对于消息推送并不陌生,相信大家经常用到。这里涉及到三个端:app服务器,apns(苹果推送服务器),app客户端。首先服务器把消息->apns 通过bundle id查找安装该app的设备devicetoken 发送到设备-> 设备接收到通知显示。
下面我们把重点放在app显示逻辑介绍中。我们理想的情况应该是这样的:
收到推送消息:用户读消息,桌面红点-1,不读消息,红点+1.在退出app时不管有无未读消息桌面红点清空,通知栏显示未读的消息。遇到的问题:当appdelegate.applicationIconBadgeNumber=0时,红点消失,可通知栏消息同样清空。当然这不是我们期望的。
- 解决方法
UILocalNotification *clearEpisodeNotification = [[UILocalNotification alloc] init]; clearEpisodeNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:(1*1)]; clearEpisodeNotification.timeZone = [NSTimeZone defaultTimeZone]; clearEpisodeNotification.applicationIconBadgeNumber = -1; [[UIApplication sharedApplication] scheduleLocalNotification:clearEpisodeNotification];