订阅通知(仅对系统应用开放)
订阅通知(仅对系统应用开放)
应用需要接收通知,必须先发起订阅,通知子系统提供两种接口:订阅所有应用发布的通知和订阅某些应用发布的通知。
系统提供NotificationSubscriber对象,用于提供订阅成功、通知接收、通知取消、订阅取消等回调接口,将变化信息回调给订阅者。
接口说明
通知订阅主要接口如下。详细接口介绍请参见API参考。
表1 通知订阅接口介绍
接口名 | 描述 |
---|---|
subscribe(subscriber: NotificationSubscriber, info: NotificationSubscribeInfo, callback: AsyncCallback<void>): void | 订阅指定应用通知。 |
subscribe(subscriber: NotificationSubscriber, callback: AsyncCallback<void>): void | 订阅所有通知。 |
表2 通知订阅回调接口介绍
接口名 | 描述 |
---|---|
onConsume?:(data: SubscribeCallbackData) => void | 通知回调。 |
onCancel?:(data: SubscribeCallbackData) => void | 通知取消回调。 |
onUpdate?:(data: NotificationSortingMap) => void | 通知排序更新回调。 |
onConnect?😦) => void; | 订阅成功回调。 |
onDisconnect?😦) => void; | 取消订阅回调。 |
onDestroy?😦) => void | 与通知子系统断开回调。 |
onDoNotDisturbDateChange?:(mode: notification.DoNotDisturbDate) => void | 免打扰时间选项变更回调。 |
onEnabledNotificationChanged?:(callbackData: EnabledNotificationCallbackData) => void | 通知开关变更回调。 |
开发步骤
申请
ohos.permission.NOTIFICATION_CONTROLLER
权限,配置方式请参见访问控制授权申请。导入通知订阅模块。
import notificationSubscribe from '@ohos.notificationSubscribe';
1创建订阅者对象。
let subscriber = { onConsume: function (data) { let req = data.request; console.info('[ANS] onConsume callback req.id: ' + req.id); }, onCancel: function (data) { let req = data.request; console.info('[ANS] onCancel callback req.id: : ' + req.id); }, onUpdate: function (data) { console.info('[ANS] onUpdate in test'); }, onConnect: function () { console.info('[ANS] onConnect in test'); }, onDisconnect: function () { console.info('[ANS] onDisConnect in test'); }, onDestroy: function () { console.info('[ANS] onDestroy in test'); }, };
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22发起通知订阅。
notificationSubscribe.subscribe(subscriber, (err, data) => { // callback形式调用异步接口 if (err) { console.error(`[ANS] subscribe failed, code is ${err.code}, message is ${err.message}`); return; } console.info(`[ANS] subscribeTest success : + ${data}`); });
1
2
3
4
5
6
7