如何在不同机型手机上适配数字角标。
前言
使用数字角标包含两个步骤:
华为、荣耀和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。
-
uniappx应用的默认入口Activity全类名为io.dcloud.uniapp.UniAppActivity(VDOM模式)或io.dcloud.uniappxv.UniAppActivity(VAPOR模式)。
-
更详细字段说明请参考链接内容:高级推送。
-
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。
-
uniappx应用的默认入口Activity全类名为io.dcloud.uniapp.UniAppActivity(VDOM模式)或io.dcloud.uniappxv.UniAppActivity(VAPOR模式)。
-
更详细字段说明请参考链接内容:请求参数。
-
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
}