logo
当前页

更新图标角标

概述

ZPNs 支持向 Android 端设备发送离线推送后,接受端在离线状态更新 App 图标数字角标,提醒用户消息未读数。

前提条件

  • 已集成 2.6.0 或以上版本的 ZPNs SDK,并且实现离线推送,详情请参考 实现离线推送
  • Android 9.0 或以上版本 Android 设备或模拟器(推荐使用真机)。

手机厂商说明

厂商是否支持角标/角标数显示适配说明
谷歌 FCM支持角标默认遵从系统逻辑,也可改变单条。
华为/荣耀支持角标/角标数支持角标数随推送增加。
小米支持角标/角标数遵从系统默认逻辑,感应通知栏数目,按 1 自动增减。
OPPO仅支持角标角标展示需由用户在通知设置中手动开启,遵从系统默认逻辑,有通知则展示,无则不展示;角标数只对指定应用开启,例如 QQ、微信,需向官方进行权限申请。
VIVO不支持。-

实现流程

发送端发送携带角标的离线推送

当发送消息、呼叫邀请时,发送方可以通过修改 ZIMPushConfig 中有关角标的参数,来决定接受端 App 图标角标的变化情况。

Untitled
ZIMPushConfig pushConfig = new ZIMPushConfig();
// 推送是否携带角标信息开关,默认为 false
pushConfig.enableBadge = true;
// 本条推送对目标设备的角标增量,此处设置为 1,这将使接收端设备 app 的角标数 + 1。(仅限支持角标增量的接收端:FCM、华为)
pushConfig.badgeIncrement = 1;
1
Copied!

接收端更新角标

根据手机厂商不同,实际的更新效果有所不同。

Google 设备更新角标

Android 8.0(API 26) 开始,系统收到 FCM 推送后会默认展示角标(圆点)。

清除通知栏相应的通知后,角标也会自动清除。

华为设备更新角标

前提条件
  1. 版本要求

    EMUI 8.0 及以上或 Magic UI 5.0+

  2. 声明权限

    在 “AndroidManifest.xml” 里配置指定的权限

    Untitled
    < uses - permission android: name = "android.permission.INTERNET" / >
    < uses - permission android: name = "com.huawei.android.launcher.permission.CHANGE_BADGE " / >
    
    1
    Copied!
  3. 配置您 app 的入口 Activity

    请联系技术支持,配置您 app 的入口 activity。例如 com.huawei.codelabpush.MainActivity.

  4. 开启华为角标

    在调用 registerPush 注册离线推送之前,调用 setPushConfig 接口,开启华为角标功能。

    Untitled
    ZPNsConfig config = new ZPNsConfig();
    config.enableHwBadge(true);
    ZPNsManager.setPushConfig(config);
    
    1
    Copied!

小米设备更新角标

MIUI 6 及以上设备支持数字角标,系统自动处理角标相关逻辑。

收到通知后 + 1,打开 APP 清零。不受 ZPNs 影响。

vivo 设备更新角标

vivo 不支持离线推送携带角标。仅支持客户端 本地设置角标

更多功能

修改本地角标数

ZPNs 封装了支持修改本地角标数的厂商(华为、vivo、OPPO)的相关 API。当您需要修改本地角标时。请调用 setApplicationIconBadgeNumber 接口。

Untitled
//修改本地角标为 1
int badge = 1;
ZPNsManager.getInstance().setApplicationIconBadgeNumber(context,badge);
1
Copied!

Previous

通知携带图片附件

Next

简介