首页 > 开发 > iOS > 正文

求问 QQ关闭时,收到消息后badge递增的实现

2017-09-08 14:03:44  来源:网友分享

当QQ关闭时,如果有新的消息进来,app上的badge显示数目会递增。比如原来是2,新来了两条,就变成了4.

我了解到的APNS推送逻辑里,是在payload中定义应用的badge显示条数,如下将显示2:
$body = array("aps" => array("alert" => '哈哈,能推送过来咯!',"badge" =>2,"sound"=>'default'));
似乎没有递增的方式。

如果要利用程序本地的代码的话,则必须是用户打开应用的状态下,那个时候会有

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo

被调用,但必须是应用打开状态。

很好奇QQ的实现方式是怎样的。大家有什么思路吗?

解决方案

之前我做的推送,也是这样,在服务器端有一个消息队列,每次把队列长度作为badge的数字发送到手机端
我非常不建议做成数字递增,因为这样你就没有机会重置数字,一旦服务端和手机端出现不同步的现象,这个数字就永远是错的