管理通知角标
针对应用未读的通知,系统提供了角标设置接口,将未读通知个数显示在桌面图标的右上角角标上。
通知增加时,角标上显示的未读通知个数需要增加。
通知被查看后,角标上显示的未读通知个数需要减少,没有未读通知时,不显示角标。
接口说明
-
通知服务提供了两种增加角标数的方法:
-
发布通知时,在NotificationRequest的badgeNumber字段里携带,桌面收到通知后,在原角标数上累加、呈现。
-
调用接口
setBadgeNumber()
设置,桌面按设置的角标数呈现。
-
-
角标数减少,目前仅支持通过
setBadgeNumber()
设置。
接口名 | 描述 |
---|---|
setBadgeNumber(badgeNumber: number, callback: AsyncCallback<void>): void | 设置角标个数 |
开发步骤
-
导入NotificationManager模块。
import notificationManager from '@ohos.notificationManager'; import Base from '@ohos.base';
-
增加角标个数。
发布通知在NotificationRequest的badgeNumber字段里携带,可参考通知发布章节。
示例为调用setBadgeNumber接口增加角标,在发布完新的通知后,调用该接口。
setBadgeNumberCallback = async (err: Base.BusinessError) => { if (err) { console.error(`Failed to set badge number. Code is ${err.code}, message is ${err.message}`); return; } console.info(`Succeeded in setting badge number.`); } let badgeNumber = 9; notificationManager.setBadgeNumber(badgeNumber, this.setBadgeNumberCallback);
-
减少角标个数。
一条通知被查看后,应用需要调用接口设置剩下未读通知个数,桌面刷新角标。
setBadgeNumberCallback = async (err: Base.BusinessError) => { if (err) { console.error(`Failed to set badge number. Code is ${err.code}, message is ${err.message}`); return; } console.info(`Succeeded in setting badge number.`); } let badgeNumber = 8; notificationManager.setBadgeNumber(badgeNumber, this.setBadgeNumberCallback);