目录

管理通知角标

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

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

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

接口说明

当角标设定个数取值小于或等于0时,表示清除角标。取值大于99时,通知角标将显示99+。

开发步骤

  1. 导入NotificationManager模块。

    import { notificationManager } from '@kit.NotificationKit';
    import { hilog } from '@kit.PerformanceAnalysisKit';
    import { BusinessError } from '@kit.BasicServicesKit';
    
    const TAG: string = '[PublishOperation]';
    const DOMAIN_NUMBER: number = 0xFF00;
  2. 增加角标个数。

    发布通知时,可在NotificationRequest的badgeNumber字段里携带相关信息,具体可参考通知发布章节。

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

    let badgeNumber: number = 9;
    notificationManager.setBadgeNumber(badgeNumber).then(() => {
      hilog.info(DOMAIN_NUMBER, TAG, `Succeeded in setting badge number.`);
    }).catch((err: BusinessError) => {
      hilog.error(DOMAIN_NUMBER, TAG,
        `Failed to set badge number. Code is ${err.code}, message is ${err.message}`);
    });
  3. 减少角标个数。

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

    let badgeNumber: number = 8;
    notificationManager.setBadgeNumber(badgeNumber).then(() => {
      hilog.info(DOMAIN_NUMBER, TAG, `Succeeded in setting badge number.`);
    }).catch((err: BusinessError) => {
      hilog.error(DOMAIN_NUMBER, TAG,
        `Failed to set badge number. Code is ${err.code}, message is ${err.message}`);
    });

常见问题

由于setBadgeNumber为异步接口,使用setBadgeNumber连续设置角标时,为了确保执行顺序符合预期,需要确保上一次设置完成后才能进行下一次设置。