• Home
Name Date Size #Lines LOC

..--

AppScope/22-Oct-2025-3532

entry/22-Oct-2025-1,5531,425

hvigor/22-Oct-2025-88

notification/22-Oct-2025-514441

screenshots/22-Oct-2025-

.gitignoreD22-Oct-2025186 1515

README_zh.mdD22-Oct-20255 KiB9069

build-profile.json5D22-Oct-20251.1 KiB4746

hvigorfile.tsD22-Oct-2025159 21

hvigorwD22-Oct-20251.4 KiB4928

hvigorw.batD22-Oct-20252.1 KiB8060

oh-package.json5D22-Oct-2025246 1312

ohosTest.mdD22-Oct-20251 KiB1210

README_zh.md

1# 自定义通知角标
2
3### 介绍
4
5本示例主要展示了设定应用的桌面图标角标的功能,使用[@ohos.notificationManager](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-notification-kit/js-apis-notificationManager.md)
6接口,进行桌面角标的设置,通知的发送,获取等。
7
8### 效果预览
9
10| 主页| 通知发送界面| 通知列表                                           |
11|--------------------------------|--------------------------------|------------------------------------------------|
12| ![image](screenshots/main.png) | ![image](screenshots/notification_send.png) | ![image](screenshots/notificatio_get_list.png) |
13
14使用说明
15
161. 在使用本应用时,需安装并启动[仿桌面应用](code/SystemFeature/ApplicationModels/Launcher);
172. 在主界面,可以看到当前应用的所有消息通知;
183. 点击右下角Tab页签进入通知发送页面,点击对应的通知即可发送相应类型的通知,点击几次发送几条;
194. 点击左下角Tab页签进入消息列表,可以查看刚才发送的消息,消息右边会显示消息数量,点击相应的消息可进行消息读取,取消相应通知;
205. 回到仿桌面,可以看到角标数量,对应消息数量。
21
22### 工程目录
23
24```
25entry/src/main/ets/
26|---components
27|   |---NotificationList.ets                 //通知列表控件
28|   |---NotificationPublish.ets              //通知发送控件
29|   |---NotificationList.ets                 //通知列表控件
30|---feature
31|   |---NotificationOperations.ets           // 对外提供发布通知的接口
32|---entryability
33|---pages
34|   |---Index.ets                            // 首页
35entry/src/ohosTest/ets/
36|---test
37|   |---Index.test.ets                       // 首页的自动化测试
38notification/src/main/ets/
39|---notification
40|   |---NotificationContentUtil.ets          // 封装各种通知的主体内容
41|   |---NotificationManagementUtil.ets       // 封装消息列表,角标设置的接口
42|   |---NotificationRequestUtil.ets          // 接收通知的主体内容,返回完整的通知
43|   |---NotificationUtil.ets                 // 封装允许发布通知、发布通知、关闭通知的接口
44|---util                                     // 日志文件
45```
46
47### 具体实现
48
49* 允许发送通知,发送通知的功能接口封装在NotificationUtil,源码参考:[NotificationUtil.ets](notification/src/main/ets/notification/NotificationUtil.ets)
50    * 允许发送通知:在进入[Index.ets](entry/src/main/ets/pages/Index.ets)
51      前通过notificationUtil.enableNotification()调用notification.requestEnableNotification()接口向用户请求发送通知;
52    * 发送通知:通过publishNotification()封装发布通知的接口;
53
54* 获取应用所有消息通知、取消相关类型通知,角标管理接口封装在NotificationManagementUtil,源码参考:[NotificationManagementUtil.ets](notification/src/main/ets/notification/NotificationManagementUtil.ets)
55    * 获取应用所有消息通知:在constructor()构造函数中调用@ohos.notificationManager中的getActiveNotifications接口获取所有通知及相应类型通知数量,通过封装getAllNotifications()对外提供接口获取当前消息及消息数量。
56    * 取消相关类型通知:通过cancelNotificationType()封装取消相关通知类型的接口;
57    * 角标管理接口:通过setBadgeNumber()封装设置应用角标数量的接口,通过getBadgeNumber()封装获取当前应用角标数量的接口。
58    * 添加一条通知:通过addNotification()封装接口添加一条通知到消息管理器,当发送通知的时候进行调用。
59
60* NotificationOperations向外提供接口,在页面中调用它们来实现功能,源码参考:[NotificationOperations.ets](entry/src/main/ets/feature/NotificationOperations.ets)
61    * 发布通知:在[Index.ets](entry/src/main/ets/pages/Index.ets)
62      页面中进入发送通知Tab页签,通过点击事件调用NotificationOperations中封装的对应的方法,然后从NotificationContentUtil中获取对应的主体内容content,将
63      content传递给NotificationRequestUtil得到完整的发布信息,最后调用NotificationUtil.publishNotification()发布内容,并调用NotificationManagementUtil的addNotification()添加一条消息;
64
65### 相关权限
66
6768
69### 依赖
70
71应用的角标依赖于仿桌面应用进行显示:
72[仿桌面应用](code/SystemFeature/ApplicationModels/Launcher)。
73
74### 约束与限制
75
761. 本示例仅支持标准系统上运行,支持设备:RK3568;
772. 本示例仅支持API10版本SDK,SDK版本号(API Version 10 Release),镜像版本号(4.0Release);
783. 本示例需要使用DevEco Studio 版本号(4.0Release)及以上版本才可编译运行。
79
80### 下载
81
82如需单独下载本工程,执行如下命令:
83
84```
85git init
86git config core.sparsecheckout true
87echo code/BasicFeature/Notification/CustomNotificationBadge/ > .git/info/sparse-checkout
88git remote add origin https://gitee.com/openharmony/applications_app_samples.git
89git pull origin master
90```