Skip to content

管理通知角标

针对未读的通知,系统提供了角标设置接口,将未读通知个数显示在桌面图标的右上角角标上。

通知增加时,角标上显示的未读通知个数需要增加。

通知被查看后,角标上显示的未读通知个数需要减少,没有未读通知时,不显示角标。

接口说明

  • 增加角标数,支持如下两种方法:

    1. 发布通知时,在 NotificationRequest 的 badgeNumber 字段里携带,桌面收到通知后,在原角标数上累加、呈现。

    2. 调用接口 setBadgeNumber()设置,桌面按设置的角标数呈现。

  • 减少角标数,目前仅支持通过 setBadgeNumber()设置。

接口名描述
setBadgeNumber(badgeNumber: number, callback)设置角标个数

开发步骤

  1. 导入 NotificationManager 模块。
js
import { notificationManager } from "@kit.NotificationKit";
import { hilog } from "@kit.PerformanceAnalysisKit";
import { BusinessError } from "@kit.BasicServicesKit";

const TAG: string = "[PublishOperation]";
const DOMAIN_NUMBER: number = 0xff00;
  1. 增加角标个数。

发布通知在 NotificationRequestbadgeNumber 字段里携带

示例为调用 setBadgeNumber 接口增加角标,在发布完新的通知后,调用该接口。

js
let setBadgeNumberCallback = (err: BusinessError): void => {
  if (err) {
    hilog.error(
      DOMAIN_NUMBER,
      TAG,
      `Failed to set badge number. Code is ${err.code}, message is ${err.message}`
    );
    return;
  }
  hilog.info(DOMAIN_NUMBER, TAG, `Succeeded in setting badge number.`);
};

let badgeNumber = 9;
notificationManager.setBadgeNumber(badgeNumber, setBadgeNumberCallback);
  1. 减少角标个数。

一条通知被查看后,应用需要调用接口设置剩下未读通知个数,桌面刷新角标。

bash
let setBadgeNumberCallback = (err: BusinessError): void => {
  if (err) {
    hilog.error(DOMAIN_NUMBER, TAG, `Failed to set badge number. Code is ${err.code}, message is ${err.message}`);
    return;
  }
  hilog.info(DOMAIN_NUMBER, TAG, `Succeeded in setting badge number.`);
}

let badgeNumber = 8;
notificationManager.setBadgeNumber(badgeNumber, setBadgeNumberCallback);