apns关于APP数字角标的理解
前两天群里有兄弟在吐槽,做远程推送的时候:老板要求APP桌面图标的右上角显示红色未读数字(数字角标)要精准,有多少未读通知就显示数字几;但是后台的弟兄在发送推送通知的时候,每次的角标是1,然后要移动端这边自己去把这个未读数字去累加,然后显示在APP上;并且后台非常固执的认为这个累加未读消息数量是在移动端处理的.....
这就尴尬了,碰到固执的队友,沟通不成的时候确实是很痛苦的!
这里我说说自己在做推送功能时候的这个角标的验证过程和理解,给后面的为碰到类似情况的同学一些参考。
随便截个图举个例子看看
当APP是处于后台的时候,实现这个还是好说的,因为当推送通知到达的时候是可以监听到的,可以获取到推送信息里面的角标数字然后进行累加。
但是当APP完成退出后台的时候,想要app监听到通知并且读取通知信息设置角标,这个好像是办不到的!
后台推送消息的格式按照苹果官方提供的格式,大致是这样:
{ "aps" : { "alert" : { "title" : "Game Request", "body" : "Bob wants to play poker", "action-loc-key" : "PLAY" }, "badge" : 5 }, "acme1" : "bar", "acme2" : [ "bang", "whiz" ] }
“aps”格式是固定的,后面的"acme1", "acme2”是自定义的数据。其中“badge"就是app的角标数字
所以要证实APP的桌面红色角标(未读消息数字)到底是由后台控制的还是移动端自己控制的,这个很容易。
让app内部不要自己操作角标变化,或者把该app完全退出,然后后台开始推送,假设推送的消息badge是数字几,而且app的角标也是显示数字几,
这个就足以证明app的红色角标是由后台推送时候控制的了!
当然话说回来,想要实现对app这个角标的精准显示,需要一个强大的后台:对每个会员在app的读取未读消息进行追踪记录上报,
然后下次推送的时候,对每个会员要进行未读消息的统计,然后在推送消息里面设置精准的badge数字。就能做到app精准的显示未读消息数字了。
我们看比如QQ,微信等app,它们的角标数字是做的非常精准的,人家的后台之强大,那是没得比的。
但是我们一般的APP, 你也想做到角标精准?有必要吗?你连做推送都是用了第三方的推送sdk如极光、个推,你还想做到精准显示角标,你去看看极光和个推对于群推的方法,
压根都没提供精准设置badge的位置,说明想实现精准实现角标,专门研究推送的这些第三方公司也觉得难度很大,或者说要付出很大的代价!
一般来说,大多数app的角标数字做的是意思意思,没那个精准,我测试过的有百度地图、简书、新浪财经等等,app的角标显示也没有做什么精准显示。所以对于咱们做的如果是一个普通的app, 角标数字的显示也就意思意思就行了,主要是为了提醒用户你有未读消息嘛!真的想做到精准显示角标,那就要和后台的兄弟谈好,让他们做好准备加油开干把!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?