• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# NotificationSubscriber
2
3作为订阅通知接口[subscribe](js-apis-notificationSubscribe.md)的入参,提供订阅者接收到新通知、取消通知等的回调方法。
4
5> **说明:**
6>
7> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9## 导入模块
10
11```js
12import notificationSubscribe from '@ohos.notificationSubscribe';
13```
14
15**系统API**:此接口为系统接口,三方应用不支持调用。
16
17### onConsume
18
19onConsume?: (data: [SubscribeCallbackData](js-apis-notification.md#subscribecallbackdata)) => void
20
21接收到新通知的回调函数。
22
23**系统能力**:SystemCapability.Notification.Notification
24
25**系统接口**: 此接口为系统接口,三方应用不支持调用。
26
27**参数:**
28
29| 参数名 | 类型 | 必填 | 说明 |
30| ------------ | ------------------------ | ---- | -------------------------- |
31| data | [SubscribeCallbackData](js-apis-notification.md#subscribecallbackdata) | 是 | 新接收到的通知信息。 |
32
33**示例:**
34
35```ts
36import Base from '@ohos.base';
37
38let subscribeCallback = (err: Base.BusinessError) => {
39  if (err) {
40    console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`);
41  } else {
42    console.info("subscribeCallback");
43  }
44};
45
46let onConsumeCallback = (data: notificationSubscribe.SubscribeCallbackData) => {
47  console.info('===> onConsume in test');
48  let req = data.request;
49  console.info('===> onConsume callback req.id:' + req.id);
50};
51
52let subscriber: notificationSubscribe.NotificationSubscriber = {
53  onConsume: onConsumeCallback
54};
55
56notificationSubscribe.subscribe(subscriber, subscribeCallback);
57```
58
59### onCancel
60
61onCancel?:(data: [SubscribeCallbackData](js-apis-notification.md#subscribecallbackdata)) => void
62
63取消通知的回调函数。
64
65**系统能力**:SystemCapability.Notification.Notification
66
67**系统API**: 此接口为系统接口,三方应用不支持调用。
68
69**参数:**
70
71| 参数名 | 类型 | 必填 | 说明 |
72| ------------ | ------------------------ | ---- | -------------------------- |
73| data | [SubscribeCallbackData](js-apis-notification.md#subscribecallbackdata) | 是 | 需要取消的通知信息。 |
74
75**示例:**
76
77```ts
78import Base from '@ohos.base';
79
80let subscribeCallback = (err: Base.BusinessError) => {
81  if (err) {
82    console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`);
83  } else {
84    console.info("subscribeCallback");
85  }
86};
87
88function onCancelCallback(data: notificationSubscribe.SubscribeCallbackData) {
89  console.info('===> onCancel in test');
90  let req = data.request;
91  console.info('===> onCancel callback req.id:' + req.id);
92}
93
94let subscriber: notificationSubscribe.NotificationSubscriber = {
95  onCancel: onCancelCallback
96};
97
98notificationSubscribe.subscribe(subscriber, subscribeCallback);
99```
100
101### onUpdate
102
103onUpdate?:(data: [NotificationSortingMap](js-apis-notification.md#notificationsortingmap)) => void
104
105更新通知排序的回调函数。
106
107**系统能力**:SystemCapability.Notification.Notification
108
109**系统API**: 此接口为系统接口,三方应用不支持调用。
110
111**参数:**
112
113| 参数名 | 类型 | 必填 | 说明 |
114| ------------ | ------------------------ | ---- | -------------------------- |
115| data | [NotificationSortingMap](js-apis-notification.md#notificationsortingmap) | 是 | 最新的通知排序列表。 |
116
117**示例:**
118
119```ts
120import Base from '@ohos.base';
121
122let subscribeCallback = (err: Base.BusinessError) => {
123  if (err) {
124    console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`);
125  } else {
126    console.info("subscribeCallback");
127  }
128};
129
130let subscriber: notificationSubscribe.NotificationSubscriber = {
131  onUpdate: (map) => {
132    console.info('===> onUpdateCallback map:' + JSON.stringify(map));
133  }
134};
135
136notificationSubscribe.subscribe(subscriber, subscribeCallback);
137```
138
139### onConnect
140
141onConnect?:() => void
142
143订阅完成的回调函数。
144
145**系统能力**:SystemCapability.Notification.Notification
146
147**系统API**: 此接口为系统接口,三方应用不支持调用。
148
149**示例:**
150
151```ts
152import Base from '@ohos.base';
153
154let subscribeCallback = (err: Base.BusinessError) => {
155  if (err) {
156    console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`);
157  } else {
158    console.info("subscribeCallback");
159  }
160};
161
162let onConnectCallback = () => {
163  console.info('===> onConnect in test');
164}
165
166let subscriber: notificationSubscribe.NotificationSubscriber = {
167  onConnect: onConnectCallback
168};
169
170notificationSubscribe.subscribe(subscriber, subscribeCallback);
171```
172
173### onDisconnect
174
175onDisconnect?:() => void
176
177取消订阅的回调函数。
178
179**系统能力**:SystemCapability.Notification.Notification
180
181**系统API**: 此接口为系统接口,三方应用不支持调用。
182
183**示例:**
184
185```ts
186import Base from '@ohos.base';
187
188let subscribeCallback = (err: Base.BusinessError) => {
189  if (err) {
190    console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`);
191  } else {
192    console.info("subscribeCallback");
193  }
194};
195let unsubscribeCallback = (err: Base.BusinessError) => {
196  if (err) {
197    console.error(`unsubscribe failed, code is ${err.code}, message is ${err.message}`);
198  } else {
199    console.info("unsubscribeCallback");
200  }
201};
202
203let onConnectCallback = () => {
204  console.info('===> onConnect in test');
205}
206let onDisconnectCallback = () => {
207  console.info('===> onDisconnect in test');
208}
209
210let subscriber: notificationSubscribe.NotificationSubscriber = {
211  onConnect: onConnectCallback,
212  onDisconnect: onDisconnectCallback
213};
214
215// 订阅通知后会收到onConnect回调
216notificationSubscribe.subscribe(subscriber, subscribeCallback);
217// 取消订阅后会收到onDisconnect回调
218notificationSubscribe.unsubscribe(subscriber, unsubscribeCallback);
219```
220
221### onDestroy
222
223onDestroy?:() => void
224
225服务失联回调函数。
226
227**系统能力**:SystemCapability.Notification.Notification
228
229**系统API**: 此接口为系统接口,三方应用不支持调用。
230
231**示例:**
232
233```ts
234import Base from '@ohos.base';
235
236let subscribeCallback = (err: Base.BusinessError) => {
237  if (err) {
238    console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`);
239  } else {
240    console.info("subscribeCallback");
241  }
242};
243
244let onDestroyCallback = () => {
245  console.info('===> onDestroy in test');
246}
247
248let subscriber: notificationSubscribe.NotificationSubscriber = {
249  onDestroy: onDestroyCallback
250};
251
252notificationSubscribe.subscribe(subscriber, subscribeCallback);
253```
254
255### onDoNotDisturbDateChange<sup>8+</sup>
256
257onDoNotDisturbDateChange?:(mode: notification.[DoNotDisturbDate](js-apis-notificationManager.md#donotdisturbdate)) => void
258
259免打扰时间选项发生变更时的回调函数。
260
261**系统能力**:SystemCapability.Notification.Notification
262
263**系统API**: 此接口为系统接口,三方应用不支持调用。
264
265**参数:**
266
267| 参数名 | 类型 | 必填 | 说明 |
268| ------------ | ------------------------ | ---- | -------------------------- |
269| mode | notification.[DoNotDisturbDate](js-apis-notificationManager.md#donotdisturbdate) | 是 | 回调返回免打扰时间选项变更。 |
270
271**示例:**
272
273```ts
274import Base from '@ohos.base';
275import NotificationManager from '@ohos.notificationManager';
276
277let subscribeCallback = (err: Base.BusinessError) => {
278  if (err) {
279    console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`);
280  } else {
281    console.info("subscribeCallback");
282  }
283};
284
285let onDoNotDisturbDateChangeCallback = (mode: NotificationManager.DoNotDisturbDate) => {
286  console.info('===> onDoNotDisturbDateChange:' + mode);
287}
288
289let subscriber: notificationSubscribe.NotificationSubscriber = {
290  onDoNotDisturbDateChange: onDoNotDisturbDateChangeCallback
291};
292
293notificationSubscribe.subscribe(subscriber, subscribeCallback);
294```
295
296
297### onEnabledNotificationChanged<sup>8+</sup>
298
299onEnabledNotificationChanged?:(callbackData: [EnabledNotificationCallbackData](js-apis-notification.md#enablednotificationcallbackdata8)) => void
300
301监听应用通知使能变化。
302
303**系统能力**:SystemCapability.Notification.Notification
304
305**系统API**: 此接口为系统接口,三方应用不支持调用。
306
307**参数:**
308
309| 参数名 | 类型                                                                                                           | 必填 | 说明 |
310| ------------ |--------------------------------------------------------------------------------------------------------------| ---- | -------------------------- |
311| callback | AsyncCallback\<[EnabledNotificationCallbackData](js-apis-notification.md#enablednotificationcallbackdata8)\> | 是 | 回调返回监听到的应用信息。 |
312
313**示例:**
314
315```ts
316import Base from '@ohos.base';
317
318let subscribeCallback = (err: Base.BusinessError) => {
319  if (err) {
320    console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`);
321  } else {
322    console.info("subscribeCallback");
323  }
324};
325
326let onEnabledNotificationChangedCallback = (callbackData: notificationSubscribe.EnabledNotificationCallbackData) => {
327  console.info("bundle: ", callbackData.bundle);
328  console.info("uid: ", callbackData.uid);
329  console.info("enable: ", callbackData.enable);
330};
331
332let subscriber: notificationSubscribe.NotificationSubscriber = {
333  onEnabledNotificationChanged: onEnabledNotificationChangedCallback
334};
335
336notificationSubscribe.subscribe(subscriber, subscribeCallback);
337```
338
339### onBadgeChanged<sup>10+</sup>
340
341 onBadgeChanged?:(data: [BadgeNumberCallbackData](#badgenumbercallbackdata10)) => void
342
343监听应用角标个数变化。
344
345**系统能力**:SystemCapability.Notification.Notification
346
347**系统API**: 此接口为系统接口,三方应用不支持调用。
348
349**参数:**
350
351| 参数名   | 类型                                                         | 必填 | 说明                       |
352| -------- | ------------------------------------------------------------ | ---- | -------------------------- |
353| callback | AsyncCallback\<[BadgeNumberCallbackData](#badgenumbercallbackdata10)\> | 是   | 回调返回监听到的应用信息。 |
354
355**示例:**
356
357```ts
358import Base from '@ohos.base';
359
360let subscribeCallback = (err: Base.BusinessError) => {
361  if (err) {
362    console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`);
363  } else {
364    console.info("subscribeCallback");
365  }
366};
367
368let subscriber: notificationSubscribe.NotificationSubscriber = {
369  onBadgeChanged: (data) => {
370    console.info("bundle: ", data.bundle);
371    console.info("uid: ", data.uid);
372    console.info("badgeNumber: ", data.badgeNumber);
373  }
374};
375
376notificationSubscribe.subscribe(subscriber, subscribeCallback);
377```
378
379## SubscribeCallbackData
380
381**系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.Notification
382
383**系统API**:此接口为系统接口,三方应用不支持调用。
384
385| 名称            | 类型                                                                 | 可读 | 可写 | 说明     |
386| --------------- |--------------------------------------------------------------------| ---- | --- | -------- |
387| request         | [NotificationRequest](js-apis-notification.md#notificationrequest) | 是  | 否  | 通知内容。 |
388| sortingMap      | [NotificationSortingMap](js-apis-inner-notification-notificationSortingMap.md) | 是  | 否  | 通知排序信息。 |
389| reason          | number                                                             | 是  | 否  | 删除原因。 |
390| sound           | string                                                             | 是  | 否  | 通知声音。 |
391| vibrationValues | Array\<number\>                                                    | 是  | 否  | 通知震动。 |
392
393
394## EnabledNotificationCallbackData<sup>8+</sup>
395
396**系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.Notification
397
398**系统API**:此接口为系统接口,三方应用不支持调用。
399
400| 名称   | 类型    | 可读 | 可写 | 说明             |
401| ------ | ------- | ---- | --- | ---------------- |
402| bundle | string  | 是  | 否  | 应用的包名。       |
403| uid    | number  | 是  | 否  | 应用的uid。        |
404| enable | boolean | 是  | 否  | 应用通知使能状态。 |
405
406
407## BadgeNumberCallbackData<sup>10+</sup>
408
409**系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.Notification
410
411**系统API**:此接口为系统接口,三方应用不支持调用。
412
413| 名称        | 类型   | 可读 | 可写 | 说明         |
414| ----------- | ------ | ---- | ---- | ------------ |
415| bundle      | string | 是   | 否   | 应用的包名。 |
416| uid         | number | 是   | 否   | 应用的uid。  |
417| badgeNumber | number | 是   | 否   | 角标个数。   |
418
419