• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 订阅通知(仅对系统应用开放)
2
3
4应用需要接收通知,必须先发起订阅,通知子系统提供两种接口:订阅所有应用发布的通知和订阅某些应用发布的通知。
5
6
7系统提供NotificationSubscriber对象,用于提供订阅成功、通知接收、通知取消、订阅取消等回调接口,将变化信息回调给订阅者。
8
9
10## 接口说明
11
12通知订阅主要接口如下。详细接口介绍请参见[API参考](../reference/apis/js-apis-notificationSubscribe.md)。
13
14**表1** 通知订阅接口介绍
15
16| **接口名** | **描述** |
17| -------- | -------- |
18| subscribe(subscriber: NotificationSubscriber, info: NotificationSubscribeInfo, callback: AsyncCallback<void>): void | 订阅指定应用通知。 |
19| subscribe(subscriber: NotificationSubscriber, callback: AsyncCallback<void>): void | 订阅所有通知。     |
20
21**表2** 通知订阅回调接口介绍
22
23| | |
24| -------- | -------- |
25| **接口名** | **描述** |
26| onConsume?:(data: SubscribeCallbackData) => void | 通知回调。 |
27| onCancel?:(data: SubscribeCallbackData) => void | 通知取消回调。 |
28| onUpdate?:(data: NotificationSortingMap) => void | 通知排序更新回调。 |
29| onConnect?:() => void; | 订阅成功回调。 |
30| onDisconnect?:() => void; | 取消订阅回调。 |
31| onDestroy?:() => void | 与通知子系统断开回调。 |
32| onDoNotDisturbDateChange?:(mode: notification.DoNotDisturbDate) => void | 免打扰时间选项变更回调。 |
33| onEnabledNotificationChanged?:(callbackData: EnabledNotificationCallbackData) => void | 通知开关变更回调。 |
34
35
36## 开发步骤
37
381. 申请`ohos.permission.NOTIFICATION_CONTROLLER`权限,配置方式请参阅[访问控制授权申请指导](../security/accesstoken-guidelines.md)。
39
402. 导入通知订阅模块。
41
42   ```ts
43   import NotificationSubscribe from '@ohos.notificationSubscribe';
44   ```
45
463. 创建订阅者对象。
47
48   ```ts
49   let subscriber = {
50       onConsume: function (data) {
51           let req = data.request;
52           console.info('[ANS] onConsume callback req.id: ' + req.id);
53       },
54       onCancel: function (data) {
55           let req = data.request;
56           console.info('[ANS] onCancel callback req.id: : ' + req.id);
57       },
58       onUpdate: function (data) {
59           console.info('[ANS] onUpdate in test');
60       },
61       onConnect: function () {
62           console.info('[ANS] onConnect in test');
63       },
64       onDisconnect: function () {
65           console.info('[ANS] onDisConnect in test');
66       },
67       onDestroy: function () {
68           console.info('[ANS] onDestroy in test');
69       },
70   };
71   ```
72
734. 发起通知订阅。
74
75   ```ts
76   NotificationSubscribe.subscribe(subscriber, (err, data) => { // callback形式调用异步接口
77     if (err) {
78       console.error(`[ANS] failed to subscribe, error[${err}]`);
79       return;
80     }
81     console.info(`[ANS] subscribeTest success : + ${data}`);
82   });
83   ```
84