iOS Push-Notification Badge auto increment

来源:互联网 发布:群体ai寻路算法 编辑:程序博客网 时间:2024/05/18 03:59

怎么在程序关闭的情况下改变applicationIconBadgeNumber的值?



当服务提供商发送一条消息来,客户端程序如果是在后台或者已经关闭,服务器端在没有得到客户端反馈时会将Badge加一,本地只是被动地显示徽章。 分两种情况 一:客户端应用处于active状态时,每次来了remote notification时,我们在程序里面直接置零:app.applicationIconBadgeNumber = 0;然后发送消息到服务器:“我已经收到了,请将badge设置为零吧” ,如果这个时候我们马上退出程序,服务器又来消息了,这个时候它发送的badge为1。客户端此时也就显示为1。 二:客户端处于关闭或后台,每次来了remote notification时,客户端程序没有办法处理消息的计数,也就不能在程序里面进行app.applicationIconBadgeNumber的赋值,也不能对服务器说“我收到了”。而服务器端没有收到客户端的反馈,所以它在第二次给你发通知时就检查badge的值,然后badge累加为二,再将消息发送过来,后客户端这边也就看到的是累加的效果。等到累加到几次了,用户打开客户端程序,这个时候也要告诉服务器:“我已经收到了,请将badge设置为零吧” 。那么服务器下一次也就又从1开始给你发badge的值。 可能有点儿啰嗦,如果不清楚的,可以发邮件问我哈,xiaohui1224@126.com QQ: 278106366 因为我是收到下面网址的讨论受到的启发的,目前认为是最好的解决法案了。 http://stackoverflow.com/questions/1942605/push-notification-badge-auto-increment 注意:再注册通知的时候:registerForRemoteNotificationTypes: 一定要用多线程哈,这个太耗网络资源了,而且直接用的话对程序的影响可以说是毁灭性的。

http://stackoverflow.com/questions/1942605/push-notification-badge-auto-increment
http://stackoverflow.com/questions/11153631/increment-the-push-notification-badge-iphone?rq=1
http://stackoverflow.com/questions/7793529/notification-badge-number-increment?rq=1