From 0e733b1d27dabdf83acbcdf60bff1ff4722fdf03 Mon Sep 17 00:00:00 2001 From: fangJinliang1 Date: Sun, 9 Apr 2023 18:47:20 +0800 Subject: [PATCH] add new ability Signed-off-by: fangJinliang1 Change-Id: Ia7135c9add353dbda2aa103226515aeef8ab328c Signed-off-by: fangJinliang1 --- .../application-models/Readme-CN.md | 1 + .../common-event-remove-sticky.md | 37 ++++++++++ .../application-dev/notification/Readme-CN.md | 1 + .../notification/notification-badge.md | 70 +++++++++++++++++++ 4 files changed, 109 insertions(+) create mode 100644 zh-cn/application-dev/application-models/common-event-remove-sticky.md create mode 100644 zh-cn/application-dev/notification/notification-badge.md diff --git a/zh-cn/application-dev/application-models/Readme-CN.md b/zh-cn/application-dev/application-models/Readme-CN.md index ec0c60b405..de364ae57b 100644 --- a/zh-cn/application-dev/application-models/Readme-CN.md +++ b/zh-cn/application-dev/application-models/Readme-CN.md @@ -47,6 +47,7 @@ - [静态订阅公共事件(仅对系统应用开放)](common-event-static-subscription.md) - [取消动态订阅公共事件](common-event-unsubscription.md) - [公共事件发布](common-event-publish.md) + - [移除粘性公共事件](common-event-remove-sticky.md) - [后台服务](background-services.md) - 线程间通信 - [线程模型](thread-model-stage.md) diff --git a/zh-cn/application-dev/application-models/common-event-remove-sticky.md b/zh-cn/application-dev/application-models/common-event-remove-sticky.md new file mode 100644 index 0000000000..ff1a0263f5 --- /dev/null +++ b/zh-cn/application-dev/application-models/common-event-remove-sticky.md @@ -0,0 +1,37 @@ +# 移除粘性公共事件 + + +## 场景介绍 + +已发出的粘性公共事件后来订阅者也可以接收到,如果这个事件不再转发,需要事件发布者进行移除。OpenHarmony提供了粘性公共事件移除接口。 + +## 接口说明 + +参考[接口文档](../reference/apis/js-apis-commonEventManager.md)。 + +| 接口名 | 接口描述 | +| -------- | -------- | +| removeStickyCommonEvent(event: string, callback: AsyncCallback): void | 移除粘性公共事件 | + + +## 开发步骤 + +1. 导入模块。 + + ```ts + import commonEventManager from '@ohos.commonEventManager'; + ``` + +2. 移除的粘性公共事件,必须是本应用之前已发布的粘性公共事件,发布粘性公共事件参考[公共事件发布](common-event-publish.md)章节。 + + ```ts + CommonEventManager.removeStickyCommonEvent("sticky_event", (err) => { // sticky_event粘性公共事件名 + if (err) { + console.info(`Remove sticky event AsyncCallback failed, errCode: ${err.code}, errMes: ${err.message}`); + return; + } + console.info(`Remove sticky event AsyncCallback success`); + } + }); + ``` + diff --git a/zh-cn/application-dev/notification/Readme-CN.md b/zh-cn/application-dev/notification/Readme-CN.md index de9886a92c..37198818a0 100644 --- a/zh-cn/application-dev/notification/Readme-CN.md +++ b/zh-cn/application-dev/notification/Readme-CN.md @@ -3,6 +3,7 @@ - [通知概述](notification-overview.md) - [订阅通知(仅对系统应用开放)](notification-subscription.md) - [使能通知开关](notification-enable.md) +- [通知角标](notification-badge.md) - 发布通知 - [发布基础类型通知](text-notification.md) - [发布进度条类型通知](progress-bar-notification.md) diff --git a/zh-cn/application-dev/notification/notification-badge.md b/zh-cn/application-dev/notification/notification-badge.md new file mode 100644 index 0000000000..719dd9b5c1 --- /dev/null +++ b/zh-cn/application-dev/notification/notification-badge.md @@ -0,0 +1,70 @@ +# 通知角标 + +应用未读的通知,OpenHarmony提供了角标设置接口,将未读通知个数显示在桌面图标的右上角角标上。 + +通知增加时,角标上显示的未读通知个数需要增加。 + +通知被查看后,角标上显示的未读通知个数需要减少,没有未读通知时,不显示角标。 + + +## 接口说明 + +1. 通知服务提供了两种增加角标数的方法: + + - 发布通知时,在[NotificationRequest](../reference/apis/js-apis-notificationManager.md#notificationrequest)的badgeNumber字段里携带,桌面收到通知后,在原角标数上累加、呈现。 + + - 调用接口[setBadgeNumber](../reference/apis/js-apis-notificationManager.md#setbadgenumber)设置,桌面按设置的角标数呈现。 + +2. 角标数减少,目前仅支持通过[setBadgeNumber](../reference/apis/js-apis-notificationManager.md#setbadgenumber)设置。 + +| **接口名** | **描述** | +| -------- | -------- | +| setBadgeNumber(badgeNumber: number, callback: AsyncCallback\): void | 设置角标个数 | + + +## 开发步骤 + +1. 导入NotificationManager模块。 + + ```ts + import notificationManager from '@ohos.notificationManager'; + ``` + +2. 增加角标个数。 + + 发布通知在[NotificationRequest](../reference/apis/js-apis-notificationManager.md#notificationrequest)的badgeNumber字段里携带,可参考[通知发布](text-notification.md)章节。 + + 示例为调用setBadgeNumber接口增加角标,在发布完新的通知后,调用该接口。 + + ```ts + function setBadgeNumberCallback(err) { + if (err) { + console.info(`Set badge failed code is ${err.code}, message is ${err.message}`); + } else { + console.info(`Set badge success`); + } + } + + let badgeNumber = 10 + notificationManager.setBadgeNumber(badgeNumber, setBadgeNumberCallback); + ``` + +3. 减少角标个数 + + 一条通知被查看后,应用需要调用接口设置剩下未读通知个数,桌面刷新角标。 + + ```ts + function setBadgeNumberCallback(err) { + if (err) { + console.info(`Set badge failed code is ${err.code}, message is ${err.message}`); + } else { + console.info(`Set badge success`); + } + } + + let badgeNumber = 9 + notificationManager.setBadgeNumber(badgeNumber, setBadgeNumberCallback); + ``` + + + -- GitLab