前两天群里有兄弟在吐槽,做远程推送的时候:老板要求APP桌面图标的右上角显示红色未读数字(数字角标)要精准,有多少未读通知就显示数字几;但是后台的弟兄在发送推送通知的时候,每次的角标是1,然后要移动端这边自己去把这个未读数字去累加,然后显示在APP上;并且后台非常固执的认为这个累加未读消息数量是在移动端处理的.....

  这就尴尬了,碰到固执的队友,沟通不成的时候确实是很痛苦的!

  这里我说说自己在做推送功能时候的这个角标的验证过程和理解,给后面的为碰到类似情况的同学一些参考。

  随便截个图举个例子看看

当APP是处于后台的时候,实现这个还是好说的,因为当推送通知到达的时候是可以监听到的,可以获取到推送信息里面的角标数字然后进行累加。

但是当APP完成退出后台的时候,想要app监听到通知并且读取通知信息设置角标,这个好像是办不到的!

后台推送消息的格式按照苹果官方提供的格式,大致是这样:

{
"aps" : {
"alert" : {
"title" : "Game Request",
"body" : "Bob wants to play poker",
"action-loc-key" : "PLAY"
},
"badge" :
},
"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, 角标数字的显示也就意思意思就行了,主要是为了提醒用户你有未读消息嘛!真的想做到精准显示角标,那就要和后台的兄弟谈好,让他们做好准备加油开干把!

apns关于APP数字角标的理解的更多相关文章

  1. Android 为应用添加数字角标

    今天在论坛上看到了一个帖子,终于搞清了我很久以来的一个困惑,android到底能不能实现ios的角标效果,QQ是怎么实现的.看了这个帖子顿时终于解除了我的困惑. 先说一个下大概的思路: 大家都知道an ...

  2. HTML页面仿iphone数字角标

    做仿iphone样式的数字角标,用简单的css来实现 <html><head><title>角标数字</title><style type=&qu ...

  3. 数字证书的理解以及自建CA机构颁发证书

    一.理解什么是数字证书   http://www.cnblogs.com/JeffreySun/archive/2010/06/24/1627247.html    理解数字证书等概念,无数次想好好看 ...

  4. 苹果APNS在app中的详细实现

    鉴于server稳定的开发难度非常大,小团队不建议自己开发.建议使用稳定的第三方推送方案,如个推,蝴蝶等. 要想使用苹果APNS推送消息,首先要把开发app的xcode所用证书上传到server上,当 ...

  5. android 桌面图标添加数字角标

    是否支持角标并不与手机厂商有关,而是你当前使用的launcher开发厂商有关. 方法实现: import android.app.Application; import android.app.Not ...

  6. 推送消息实现icon角标的动态显示

    在你自己服务器上做计数,客户端做减法并反馈给你的服务器 ,然后你服务器将需要显示的数字发送给苹果推送服务器(就是消息中的badge)比如:1,你服务器上发送出去3个推送消息到A手机           ...

  7. ios uibutton加数字角标

    http://www.jianshu.com/p/0c7fae1cadac 第一种:https://github.com/mikeMTOL/UIBarButtonItem-Badge第二种:https ...

  8. AGC033 D~F——[ 值放到角标的DP ][ 思路+DP ][ 思路 ]

    地址:https://atcoder.jp/contests/agc033/ D Complexity dp[ i ][ j ][ k ][ l ] 表示左上角是 ( i , j ) .右下角是 ( ...

  9. python实现从生成器中取固定角标的元素

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- class A: def __init__(self): def r(): i = 1 while Tru ...

随机推荐

  1. ReSharper C++计划上市

    ReSharper是著名的VS代码生成工具,去年夏天,JetBrains公司就发布了ReSharper将推出支持C++的版本. ReSharper C++ EAP(Early Access Progr ...

  2. 你不明白 String 类别

    序 前几篇文章一直在研究 WEB 安全的问题,并且近期工作中也一直在解决这些安全漏洞.当然,兴许的博客中还会就这些暴露出来的问题谈谈我的解决方式,仅仅只是,在这篇博客中,我想谈点别的问题.并且对于我们 ...

  3. javascript面向对象2

    原文:javascript面向对象2 首先我们先创建一个对象 var user = Object(); user.name = "张三"; user.age = 20; user. ...

  4. .net图片自动裁剪白边函数案例

    1.项目要求上传白底的图片要进行裁剪白边,于是同事谢了个函数感觉很好用. 2. #region 剪切白边 /// <summary> /// 剪切白边 /// </summary&g ...

  5. Jqury笔记

    1.  --------------- -var aa = new Array(); aa.push(1); alert(aa[0]); var aa=[];也表示一个数组: ------------ ...

  6. 【值得收藏】符号计算软件Maple的学习资料汇编【可免费下载】

    Maple学习教程 Maple是目前世界上最为通用的数学和工程计算软件之一,在数学和科学领域享有盛誉,有“数学家的软件”之称.Maple在全球拥有数百万用户,被广泛地应用于科学.工程和教育等领域,用户 ...

  7. VS2010生成安装包制作步骤

    VS2010生成安装包制作步骤   在VS2010中文旗舰版本中生成winForm安装包,可以复制你电脑中的开发环境,避免你忘记了一下配置然后在别的机器上运行不起来.也省去了Framwork的安装. ...

  8. 生成自己的Webapi帮助文档(二)

    经过今天一上午的修改,已经有个基础的框架了,其它功能只能是在实际使用中发现一个修改一个了. 以下是生成的结果示例: 相比昨天,几个Model都有修改,这里就不一一贴代码了,放个代码包上来,有需要的自己 ...

  9. linux时间校准设置,解决与本地时间不一致问题

    时间安装脚本   从NTP上把时间同步到本地 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 更新本地时间 ntpdate us.pool.nt ...

  10. node-webkit入门

    node-webkit入门   一.简介 node-webkit 是一个基于chromium与node.js的应用程序运行器,它允许开发者使用web技术编写桌面程序.通过Node.js和WebKit技 ...