如题,请问大家的项目里,角标数字由客户端还是服务器控制呢?
当然,这个问题主要在由服务器推送远程通知的情况下:如果是不需要服务器通知,本地App可以精确地控制角标数字数;然而在有服务器远程通知时,App在未运行或驻后台的情况下无法主动修改角标数字,如果服务器不提供角标的参数,则App的角标数字显示就不准确了。
我的个人想法是应该由服务器控制。服务器在推送通知时,应该获取该设备的未读消息数,并在 badge 值里给出加上新通知后应该显示的未读消息数。然后客户端在每次用户阅读消息后,通知服务器用户读了消息,然后将 badge 值减一。这样一来角标数字会是准确的,但这种方法看起来增大了服务器的负担,因为要为每一台设备保存一份它的未读消息数。
大家的项目里,如果有服务器推送远程通知的话,请问是怎么解决角标数字的同步问题呢?