如何在不同机型手机上适配数字角标。
前言
使用数字角标包含两个步骤:
华为、荣耀和vivo自有通道角标需使用移动推送SDK V3.9.1及以上版本。
厂商支持说明
手机类型 | 自有通道 | 厂商通道 | 是否需要配置 |
华为 | 支持 | 支持 | 是 |
荣耀 | 支持 | 支持 | 是 |
小米 | 系统自动统计 | 系统自动统计 | 需用户开启角标权限 |
vivo | 支持 | 支持(仅PushV2) | 是 |
OPPO | 不支持 | 支持 | 是 |
魅族 | 不支持 | 不支持 |
小米机型的角标数为应用在通知栏中的通知的数量。无法通过api设置角标数量。
vivo厂商通道角标仅支持PushV2接口,并且需要提前开通VPush角标权限。
OPPO厂商通道仅支持通讯与服务类等允许携带数字角标的消息,具体准入和展示规则请参见OPPO PUSH桌面数字角标文档。
第一步客户端配置
<!--华为/荣耀角标需要权限-->
<uses-permission android:name="com.hihonor.android.launcher.permission.CHANGE_BADGE" />
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE" />
<!--vivo角标需要权限-->
<uses-permission android:name="com.vivo.notification.permission.BADGE_ICON" />
<!--OPPO角标需要权限-->
<uses-permission android:name="com.oplus.notification.permission.BADGE_DIGITAL" />对华为/荣耀机型的角标支持,移动推送SDK只负责展示角标,角标的消除需要用户手动调用api完成。移除角标api请参考数字角标接口。
小米机型展示数字角标需要在设置中打开角标权限。
OPPO角标接入方式适用于ColorOS 16及以上版本,并需要用户授予桌面数字角标权限。
使用vivo厂商通道角标前,还需要在vivo开放平台申请VPush角标权限;仅声明客户端权限不能代替厂商通道权限。
第二步服务端配置
PushV2接口
PushV2和MassPushV2通过PushTask.Notification.Android传入Android角标参数。下表说明各参数支持的推送通道和手机机型。
参数 | 类型 | 取值 | 支持通道与说明 |
| int | 1~99 | 设置角标数字固定值。 说明
|
| int | 0~99 | 设置角标累加值,在原角标的基础上进行累加。 说明
|
| String | 应用入口Activity全类名 | 角标设置应用入口 Activity 的全类名。 说明
|
| boolean | true或false | 设置vivo通道角标累加值。 |
uniapp应用的默认入口Activity全类名为io.dcloud.PandoraEntry,如未修改请填写此名称。
更详细字段说明请参考链接内容:高级推送。
OPPO本地角标接入和系统版本要求请参见OPPO桌面数字角标自主接入文档;vivo厂商角标准入和参数说明请参见vivo桌面角标设置方法。
PushTask示例
{
"Target": {
"Type": "ACCOUNT",
"Value": "86",
"Platform": "ANDROID"
},
"Notification": {
"Title": "通知标题",
"Body": "通知正文",
"Android": {
"BadgeSetNum": 11,
"BadgeActivity": "com.example.MainActivity",
"VendorChannelActivity": "com.example.PopupActivity",
"Options": {
"Vivo": {
"AddBadge": true
}
}
}
}
}Push接口
Push和MassPush使用下列扁平参数。Push接口没有vivo厂商角标专属参数,因此无法通过vivo厂商通道增加角标。
参数 | 类型 | 取值 | 支持通道与说明 |
| int | 1~99 | 设置角标数字固定值。 说明
|
| int | 0~99 | 设置角标累加值,在原角标的基础上进行累加。 说明
|
| String | 应用入口Activity全类名 | 角标设置应用入口 Activity 的全类名。 说明
|
uniapp应用的默认入口Activity全类名为io.dcloud.PandoraEntry,如未修改请填写此名称。
更详细字段说明请参考链接内容:请求参数。
OPPO本地角标接入和系统版本要求请参见OPPO桌面数字角标自主接入文档;vivo厂商角标准入和参数说明请参见vivo桌面角标设置方法。
下发角标数据结构
{
"AppKey": "******",
"PushType": "NOTICE",
"DeviceType": "ANDROID",
"Target": "ACCOUNT",
"TargetValue": "86",
"StoreOffline": true,
"Title": "通知标题",
"Body": "通知正文",
"AndroidOpenType": "APPLICATION",
"AndroidPopupActivity": "com.example.PopupActivity",
"AndroidPopupTitle": "******",
"AndroidPopupBody": "******",
"AndroidNotificationChannel": "******",
"AndroidTargetUserType": 1,
"AndroidBadgeAddNum": 7,
"AndroidBadgeClass": "******",
"AndroidBadgeSetNum": 11
}