ZPNs 支持向 Android 端设备发送离线推送后,接受端在离线状态更新 App 图标数字角标,提醒用户消息未读数。
当接收端为在线状态时,需要调用 setServerBadge 接口向 ZPNs 服务器上报 App 当前的角标数值,后续当接收端收到离线推送后,ZPNs 将基于此数值,自动修改接收端的角标数值。
badge 值不得小于 0。
// 此处向 ZPNs 服务端上报当前 app 的角标为 1.
ZPNs.getInstance().setServerBadge(1);
当发送消息、呼叫邀请时,发送方可以通过修改 ZIMPushConfig 中有关角标的参数,来决定接受端 App 图标角标的变化情况。
ZIMPushConfig pushConfig = ZIMPushConfig();
// 推送是否携带角标信息开关,默认为 false
pushConfig.enableBadge = true;
// 本条推送对目标设备的角标增量,此处设置为 1,这将使接收端设备 app 的角标数 + 1。(仅限支持角标增量的接收端:fcm,华为)
pushConfig.badgeIncrement = 1;
接收到离线推送后,ZPNs SDK 会自动根据离线推送中的角标信息,从而调整 App 的图标角标。
厂商 | 是否支持角标/角标数显示 | 适配说明 |
---|---|---|
谷歌 FCM |
支持角标。 |
默认遵从系统逻辑,也可改变单条。 |
华为/荣耀 |
支持角标/角标数。 |
支持角标数随推送增加。 |
小米 |
支持角标/角标数。 |
遵从系统默认逻辑,感应通知栏数目,按 1 自动增减。 |
OPPO |
仅支持角标。 |
角标展示需由用户在通知设置中手动开启,遵从系统默认逻辑,有通知则展示,无则不展示;角标数只对指定应用开启,例如 QQ、微信,需向官方进行权限申请。 |
VIVO |
不支持。 |
- |
当发送消息、呼叫邀请时,发送方可以通过修改 ZIMPushConfig 中有关角标的参数,来决定接受端 App 图标角标的变化情况。
ZIMPushConfig pushConfig = ZIMPushConfig();
// 推送是否携带角标信息开关,默认为 false
pushConfig.enableBadge = true;
// 本条推送对目标设备的角标增量,此处设置为 1,这将使接收端设备 app 的角标数 + 1。(仅限支持角标增量的接收端:fcm,华为)
pushConfig.badgeIncrement = 1;
根据手机厂商不同,实际的更新效果有所不同。
版本要求:EMUI 8.0 及以上或 Magic UI 5.0+。
在 “AndroidManifest.xml” 里配置指定的权限。
< uses - permission android: name = "android.permission.INTERNET" / >
< uses - permission android: name = "com.huawei.android.launcher.permission.CHANGE_BADGE " / >
请联系 ZEGO 技术支持,配置您 App 的入口 Activity。例如 com.huawei.codelabpush.MainActivity
。
开启华为角标。在调用 registerPush 注册离线推送之前,调用 setPushConfig 接口,开启华为角标功能。
ZPNsConfig config = ZPNsConfig();
config.enableHwBadge(true);
ZPNsManager.setPushConfig(config);
MIUI 6 及以上设备支持数字角标,系统自动处理角标相关逻辑。
收到通知后 + 1,打开 APP 清零,不受 ZPNs 影响。
vivo 不支持离线推送携带角标,仅支持客户端 本地设置角标。
ZPNs 封装了支持修改本地角标数的厂商(Apple、华为、vivo、OPPO)的相关 API。当您需要修改本地角标时,请调用 setLocalBadge 接口。
//修改本地角标为 1
int badge = 1;
ZPNs.getInstance().setLocalBadge(1);
联系我们
文档反馈