极光推送的角标问题 —— 让人又爱又恨的小红点

2017-03-17 10:31:25 +08:00
 jpush

我们现在无论何时拿出自己的手机,解锁后的主页上,总能看到一个个的小红点,仿佛在呐喊:有消息啦,不管重不重要,快点我,快来消除我。

甚至曾有人掀起了一波潮流:在微信头像上加上小红点。这很直接很彻底地引发了大众的清除强迫症。

这也就是为什么我们做 App 的时候,希望在收到了推送消息时, App 能带上一个小红点。在使用得当的情况下,小红点有助于增加 App 的启动率,保持用户粘度。

那么 App 端怎么来实现呢?小红点中心的数值怎么来管理呢?


Android


iOS

一、客户端设置角标

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:(int)value];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]; //清除角标
//以上方法在任何地方均可调用,根据自己的需要设定即可。譬如:

//杀死后点击 icon 进入时清除角标
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
application.applicationIconBadgeNumber = 0;
}
//从后台点击 icon 进入时清除角标
func applicationWillEnterForeground(_ application: UIApplication) {
application.applicationIconBadgeNumber = 0;
}
+ (BOOL)setBadge:(int)value  //value 取值范围:[0,99999]
+ (void)resetBadge  //相当于  [setBadge:0],清空角标

设通过调用 API ,使极光服务器为A设备存储的角标数为 P ,为 B 设备存储的角标数为 Q 。

二、服务端或控制台推送时, badge 可设置为 N ,+N ,-N

//服务端发送 json 消息串
{
    "notification" : {
         "ios" : {
                 "alert" : "hello, JPush!", 
                 "sound" : "sound.caf", 
                 "badge" : 1, //可传值为 N ,+N ,-N 。
                 }
            }
       }
}   

控制台的设置 badge 的步骤:推送>发送通知>选择一个 iOS 目标平台>展开可选设置> iOS > badge

这里应该有注意到,极光服务器帮大家完成了每个设备的角标的管理,所以一般使用的时候只需要在客户端预设好角标的处理逻辑,推送时固定好 + N ,就可以不用再自己操心 badge 的值了。

三、使用官方提供的服务端 SDK 各有不同

//java sdk 设置 badge + 1 用的不是 setBadge ,而是 autoBadge 或者 incrBadge

//C# SDK 设置 badge +1 用的是 incrBadge

作者:末日云游 - 极光( jpush 为极光团队账号)

原文:极光推送的角标问题 —— 让人又爱又恨的小红点

知乎专栏:极光日报

2702 次点击
所在节点    推广
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/348125

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX