• Home
Name Date Size #Lines LOC

..--

AppScope/12-May-2024-3532

entry/12-May-2024-1,5531,425

hvigor/12-May-2024-88

notification/12-May-2024-514441

screenshots/12-May-2024-

.gitignoreD12-May-2024186 1515

README_zh.mdD12-May-20245.1 KiB8968

build-profile.json5D12-May-20241.1 KiB4746

hvigorfile.tsD12-May-2024159 21

hvigorwD12-May-20241.4 KiB4928

hvigorw.batD12-May-20242.1 KiB8060

oh-package.json5D12-May-2024246 1312

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