关于推送的角标的设置

1.下面是极光文档上面写到的,好多同学并未好好的查看(下面我认为是角标相关的设置)

* @abstract 设置角标(到服务器)

*

* @param value 新的值. 会覆盖服务器上保存的值(这个用户)

*

* @discussion 本接口不会改变应用本地的角标值.

* 本地仍须调用 UIApplication:setApplicationIconBadgeNumber 函数来设置脚标.

*

* 本接口用于配合 JPush 提供的服务器端角标功能.

* 该功能解决的问题是, 服务器端推送 APNs 时, 并不知道客户端原来已经存在的角标是多少, 指定一个固定的数字不太合理.

*

* JPush 服务器端脚标功能提供:

*

* - 通过本 API 把当前客户端(当前这个用户的) 的实际 badge 设置到服务器端保存起来;

* - 调用服务器端 API 发 APNs 时(通常这个调用是批量针对大量用户),

*   使用 "+1" 的语义, 来表达需要基于目标用户实际的 badge 值(保存的) +1 来下发通知时带上新的 badge 值;

*/

+ (BOOL)setBadge:(NSInteger)value;(告诉极光我们app下次推送的角标基数)

+ (BOOL)setBadge:(NSInteger)value;

/*!

* @abstract 重置脚标(为0)

*

* @discussion 相当于 [setBadge:0] 的效果.

* 参考 [JPUSHService setBadge:] 说明来理解其作用.

*/

+ (void)resetBadge;

//这个我认为也是很重要的

/*!

* @abstract 关闭日志

*

* @discussion 关于日志级别的说明, 参考 [JPUSHService setDebugMode]

*

* 虽说是关闭日志, 但还是会打印 Warning, Error 日志. 这二种日志级别, 在程序运行正常时, 不应有打印输出.

*

* 建议在发布的版本里, 调用此接口, 关闭掉日志打印.

*/

+ (void)setLogOFF;(发布时记得关闭极光打印log的功能)

2.一般小公司的App都会采用比较偷懒的设置角标的方式

就是一点击app进入的时候,就回包通知栏的通知全部清空主要分三个步骤

一般是在这个方法里面

1.[application setApplicationBadgeNunber:0];(清空app的角标)

2.[application cancelLocalNotifcations];(清空通知栏的所有的通知)

3.[JPUSHService resetBadge];(通知极光的服务器角标清空了)

3.如果是大点点的公司就得好好的分析角标的变化过程了

这是我粗略的分析了角标的分析流程

当然这只是给大家一个分析的思路(不同的app还是要根据自己公司的产品的想法来的),如果很乱的话,不妨想我一样画一个流程图

大致考虑的点就是:

1:程序在前台的时候app的角标是不是应该和极光的保持一致

2. 如果是程序的消息二级界面(一般就如此界面的时候这个分类下的消息都相当与已读的状态),如果这时候来的一条消息,要判断是不是此分类下的界面(如果是相当于来的推送消息已经读过了,如果不是这个类型的分类下面,任然是去增加角标)

3.后台进入的时候,判断分类的消息是不是都是已读的状态,如果不是就角标进行-1 ,通知极光-1 通知后台此分类-1即可(当然自己的分类未读个数的计数器还是该加加该减减)

这种实现的难度就是要判断是不是在分类的二级列表下面

建议人力较少的公司直接点击分类中的某个详情界面是,才相当于查看了这条消息

还要考虑的是极光的后台有的时候会挂掉,我们的app必须有角标的自动修复机制,不要影响用户的体验

关于前台后台以及点击通知栏直接进入的状况

点击通知栏进入会走InActive的状态

前台和后台就很好判断了

这里借鉴了某位大神哥的看法(多谢大神分享)

时间: 2024-10-12 04:48:37

关于推送的角标的设置的相关文章

极光推送 标签和别名设置说明

1.获取别名:在极光这个回调方法里面 得到 registrationID 并存储起来 登录的时候会用, /** 极光推送 回调 */ - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { /// Required - 注册 DeviceToken [JPUSHService registerDeviceTok

李洪强iOS之集成极光推送二iOS 证书 设置指南

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC"; color: #000000 } span.s1 { } span.s2 { font: 18.0px Menlo } 创建应用程序ID 登陆 iOS Dev Center 选择进入iOS Provisioning Portal. 在 iOS Provisioning Portal中,点击App IDs进入App ID列表. 创建 App ID,如果

IOS本地,APNS远程推送(具体过程)

添加本地推送 ///本地添加 -(void)addLocalPushNotification:(UIButton*)sender; { NSLog(@"%s",__FUNCTION__); UILocalNotification* localNotification=[[UILocalNotification alloc]init]; if (localNotification) { //设置时间当前加20秒 NSDate* pushDate=[NSDate dateWithTimeI

苹果开发者中心 - 信鸽推送

一.苹果开发者账号分类 从价格分类: 1.$99 (1).个人账号 (2).公司账号:需要法人信息,营业执照,邓白氏编码 使用:用于上传App到AppStore 2.$299 企业账号:需要邓白氏编码 使用:用于公司内部测试,不用于盈利 3.免费 (1).个人申请账号:仅可以用于真机调试 (2).院校账号:仅可以用于真机调试,通过苹果认证的高校,可以使用 二.关于账号的使用 1.证书 (1).测试证书 每个账号最多能创建2个,生成证书需要使用创建CSR文件[1.通过钥匙串生成 2.文件包含:当前

iOS-项目远程推送1

一.苹果开发者账号分类 从价格分类: 1.$99 (1).个人账号 (2).公司账号:需要法人信息,营业执照,邓白氏编码 使用:用于上传App到AppStore 2.$299 企业账号:需要邓白氏编码 使用:用于公司内部测试,不用于盈利 3.免费 (1).个人申请账号:仅可以用于真机调试 (2).院校账号:仅可以用于真机调试,通过苹果认证的高校,可以使用 二.关于账号的使用 1.证书 (1).测试证书 每个账号最多能创建2个,生成证书需要使用创建CSR文件[1.通过钥匙串生成 2.文件包含:当前

iOS10 关于推送-b

最近在研究iOS10关于推送的新特性, 相比之前确实做了很大的改变,总结起来主要是以下几点: 推送内容更加丰富,由之前的alert 到现在的title, subtitle, body 推送统一由trigger触发 可以为推送增加附件,如图片.音频.视频,这就使推送内容更加丰富多彩 可以方便的更新推送内容 import 新框架 添加新的框架 UserNotifications.framework  #import <UserNotifications/UserNotifications.h> 注

消息推送技术

消息推送 消息推送是针对 Web 应用开发领域的技术,指服务端以主动方式将信息送达客户端.主要用于提升用户体验,避免用户刷新页面从服务端拉取数据.例如 Web 邮件中自动出现刚收到的邮件项,Web 即时通讯自动提示新到消息等应用场景. 要实现消息推送机制,涉及两方面的内容: Web 层消息推送 服务层消息服务 Web 层消息推送 套接字 可以使用套接字接口进行全双工通讯.可以通过 Flash XMLSocket.Java Applet 技术实现.但由于实现方案与厂商技术绑定过紧,不属于 Web

iOS:极光推送控制器跳转

在前面已经做完了极光消息的推送,那么有消息了,如何跳转到需要的控制器呢?其实,主要还是在userInfo这个消息里面做判断来处理,具体如下: 下面这两个是远程推送时接收消息的方法,这是应用程序提供的方法,只要成功注册了极光推送,推送消息时,就会调用这两个方法,在这两个方法收到的userInfo消息做判断即可. // Required,For systems with less than or equal to iOS6 -(void)application:(UIApplication *)ap

【Android应用开发】 推送原理解析 极光推送使用详解 (零基础精通推送)

作者 : octopus_truth 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/45046283 推送技术产生场景 : -- 服务器端主动性 : 客户端与服务器交互都是客户端主动的, 服务器一般不能主动与客户端进行数据交互, 因为服务器端无法得知客户端的 IP 地址 及 状态; -- 数据实时性 : 如果服务器端有紧急数据要传递给客户端, 就必须主动向客户端发送数据; -- 基本原理 : 使客户端实时获取服务器端消息,