应用badge角标,是手机桌面应用图标右上角圆点或者数字角标,常见的场景是伴随通知栏消息显示,提醒用户及时点阅新消息。iOS手机系统能够较好的支持角标,Android手机系统由于碎片化严重,品牌众多,版本各异,所以角标功能适配较难。个推后续会在Android角标功能适配继续努力,为开发者提供较好的角标功能体验。
机型 | 是否支持角标/红点显示 | 适配说明 |
---|---|---|
华为 | 支持角标 | 参考当前文档 |
荣耀 | 支持角标 | 参考当前文档 |
小米 | 支持角标 | 遵从系统默认逻辑,感应通知栏通知数目,按 1 自动增减 |
OPPO | 支持红点 | 圆点展示需由用户在通知设置中手动开启,遵从系统默认逻辑,有通知则展示,无则不展示; 数值展示只对指定应用开启,例如 QQ、微信,需向官方进行权限申请,暂无明确适配说明 |
VIVO | 支持角标 | 高版本系统自带离线通知数字角标展示功能,默认+1处理,打开清零,低版本没有角标功能。 |
魅族 | 支持红点 | 遵从系统默认逻辑,仅支持红点展示,有通知则展示,无则不展示 |
iOS | 支持角标 | 参考当前文档 |
角标功能适用于 通知消息
iOS 系统需要客户端和服务端配合实现角标功能
服务端:
"push_channel":{
"ios":{
"type":"notify",
"payload":"自定义消息",
"aps":{
"alert":{
"title":"通知标题",
"body":"通知内容"
},
"content-available":0
},
//离线走apns推送时,设置的iOS角标。
"auto_badge":"+1" //可以实现显示数字的自动增减,如“+1”、 “-1”、 “1” 等,计算结果将覆盖badge
}
}
客户端
客户端打开 app 可更改角标数或清空角标(设置角标数为 0):客户端设置iOS角标
示例:
设置角标减 1
1、在点击后的方法中,调用 application.applicationIconBadgeNumber 获取到角标数减 1
2、通过 [application setApplicationIconBadgeNumber:]设置当前的角标
3、然后通过个推的 [GeTuiSdk setBadge:] 将角标同步给个推服务器
常见问题
Q:iOS应用如何让角标badge自动加1?
A:
华为手机系统需要客户端和服务端配合实现角标功能。
服务端:
{
"request_id": "fhfjkhwej478414",
"settings": {
"ttl": 259200000
},
"audience": {
"cid": [
"bae1fdd10477db63b17af9e76dd41863"
]
},
"push_message": {
"notification": {
"title": "个推在线标题",
"body": "个推在线内容",
"click_type": "url",
"url": "https://www.getui.com/",
//在线推送时,设置的华为角标,1表示在当前的角标数上+1。
"badge_add_num": "1"
}
},
"push_channel": {
"android": {
"ups": {
"notification": {
"title": "厂商离线标题",
"body": "厂商离线内容",
"click_type": "url",
"url": "https://www.getui.com/"
},
"options": {
"HW": {
"/message/android/notification/badge/class": "应用入口Activity路径名称",
//add_num 为离线推送时,设置的华为角标,1表示在当前的角标数上+1
"/message/android/notification/badge/add_num": 1
},
"HO": {
"/android/notification/badge/addNum": 1,
//add_num 为离线推送时,设置的荣耀角标,1表示在当前的角标数上+1
"/android/notification/badge/badgeClass": "应用入口Activity类全路径名称"
}
}
}
}
}
}
客户端:
角标只能由客户端清理,客户端打开 app 可更改角标数或清空角标(设置角标数为 0): 客户端设置角标