js333 > 计算机互联网 > 极光如何设置badge,apns关于APP数字角标的理解

原标题:极光如何设置badge,apns关于APP数字角标的理解

浏览次数:97 时间:2019-11-22

apns关于APP数字角标的理解,apnsapp数字标的

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

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

 

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

  随便截个图举个例子看看

金沙js333娱乐场 1

 

当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, 角标数字的显示也就意思意思就行了,主要是为了提醒用户你有未读消息嘛!真的想做到精准显示角标,那就要和后台的兄弟谈好,让他们做好准备加油开干把!

 

前两天群里有兄弟在吐槽,做远程推送的时候:老板要求APP桌面图标的右上角显示红色未读数字...

一、在使用极光设置app角标时,你需要了解下极光推送相关知识点

设置app角标可通过极光金沙js333娱乐场 ,设置,也可以通过iOS方法设置,方法介绍如下:

1.通过极光设置app角标的方法有

  • 方法1:[JPUSHService setBadge:5];
  • 方法介绍:设置JPush服务器中存储的badge值,设置为多少,app接受到通知之后,角标就为多少。
  • 方法2:[JPUSHService resetBadge];
  • 方法介绍:清空JPush服务器中存储的badge值,即 [setBadge:0]。设置完之后,即使app接受到通知了,app角标也不会显示。

2.通过极光设置app角标的方法有

  • 方法:[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
  • 方法介绍:设置的值不为0时,值是多少,app角标就显示多少。如果设置的值为0时。APP角标不显示,并且会清空通知列表中本APP的所有通知
  • 特别注意点:该方法值为0时,会清空通知列表中本APP的所有通知。

二、注意点
  • 1.可否可精确改变app右上角的角标?
    答:不可以,因为通知列表有个清除按钮,我们无法判断,我们无法判断我们的通知是否被删除了。

  • 2.iOS 10及以下,APP在前台接收到通知时,顶部会弹出通知,但是iOS 10以下的系统是不会弹出通知的哦。这一点需要注意了。

  • 3.无论iOS系统是几,APP在后台接受到消息,手机顶部都会有弹窗,并且有声音(前提是你别把手机声音关了哦)。

  • 4.无论iOS系统是几,APP在前台接收到推送时,都不会有声音。


三、总结:
  • 如果通过以上三种方法的哪一种方式设置APP的角标,只要设置的值为0,那么苹果系统就会自动清空通知列表中本APP的所有通知,即使你没有点击过这条通知,也会被清空。这就会造成用户可能错过读取某些重要的通知。因此,笔者建议,跟后台人员说,推送时badge永远设置为0,不要累加。这样的好处就是,用户在通知列表点击一条通知,就自动消失一条通知,而不会清空所有。从而避免用户错误某些重要通知。
  • 当然,一些非常重要的通知,笔者还是建议后台推送完之后,APP也有个可以查看通知的地方。这样即使用户清空了通知,在APP内部依旧可以查看得到。

说明:
  • 笔者才疏学浅,如有写得不对的地方,还望大家多多赐教,谢谢。
  • 推荐不错的相关文章链接

本文由js333发布于计算机互联网,转载请注明出处:极光如何设置badge,apns关于APP数字角标的理解

关键词:

上一篇:jquery如何动态加载js文件,javascript如何动态加载

下一篇:没有了