1# NotificationSubscriber (System API) 2 3The **NotificationSubscriber** module provides callbacks for receiving or removing notifications and serves as the input parameter of [subscribe](./js-apis-notificationSubscribe-sys.md). 4 5> **NOTE** 6> 7> The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version. 8> 9> The APIs provided by this module are system APIs. 10 11## Modules to Import 12 13```js 14import { notificationSubscribe } from '@kit.NotificationKit'; 15``` 16 17## onConsume 18 19onConsume?: (data: SubscribeCallbackData) => void 20 21Called when a new notification is received. 22 23**System capability**: SystemCapability.Notification.Notification 24 25**System API**: This is a system API. 26 27**Parameters** 28 29| Name| Type| Mandatory| Description| 30| ------------ | ------------------------ | ---- | -------------------------- | 31| onConsume | (data: [SubscribeCallbackData](#subscribecallbackdata)) => void | No| Information about the notification received.| 32 33**Example** 34 35```ts 36import { BusinessError } from '@kit.BasicServicesKit'; 37 38let subscribeCallback = (err: 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) => void 62 63Called when a notification is canceled. 64 65**System capability**: SystemCapability.Notification.Notification 66 67**System API**: This is a system API. 68 69**Parameters** 70 71| Name| Type| Mandatory| Description| 72| ------------ | ------------------------ | ---- | -------------------------- | 73| onCancel | (data: [SubscribeCallbackData](#subscribecallbackdata)) => void | No| Information about the notification to cancel.| 74 75**Example** 76 77```ts 78import { BusinessError } from '@kit.BasicServicesKit'; 79 80let subscribeCallback = (err: 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 88let 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) => void 104 105Called when notification sorting is updated. 106 107**System capability**: SystemCapability.Notification.Notification 108 109**System API**: This is a system API. 110 111**Parameters** 112 113| Name| Type| Mandatory| Description| 114| ------------ | ------------------------ | ---- | -------------------------- | 115| onUpdate | (data: [NotificationSortingMap](js-apis-inner-notification-notificationSortingMap-sys.md)) => void | No| Latest notification sorting list.| 116 117**Example** 118 119```ts 120import { BusinessError } from '@kit.BasicServicesKit'; 121 122let subscribeCallback = (err: 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 143Called when subscription is complete. 144 145**System capability**: SystemCapability.Notification.Notification 146 147**System API**: This is a system API. 148 149**Parameters** 150 151| Name| Type| Mandatory| Description| 152| ------------ | ------------------------ | ---- | -------------------------- | 153| onConnect | () => void | No| Callback invoked when subscription is complete.| 154 155**Example** 156 157```ts 158import { BusinessError } from '@kit.BasicServicesKit'; 159 160let subscribeCallback = (err: BusinessError) => { 161 if (err) { 162 console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`); 163 } else { 164 console.info("subscribeCallback"); 165 } 166}; 167 168let onConnectCallback = () => { 169 console.info('===> onConnect in test'); 170} 171 172let subscriber: notificationSubscribe.NotificationSubscriber = { 173 onConnect: onConnectCallback 174}; 175 176notificationSubscribe.subscribe(subscriber, subscribeCallback); 177``` 178 179## onDisconnect 180 181onDisconnect?: () => void 182 183Called when unsubscription is complete. 184 185**System capability**: SystemCapability.Notification.Notification 186 187**System API**: This is a system API. 188 189**Parameters** 190 191| Name| Type| Mandatory| Description| 192| ------------ | ------------------------ | ---- | -------------------------- | 193| onDisconnect | () => void | No| Callback invoked when unsubscription is complete.| 194 195**Example** 196 197```ts 198import { BusinessError } from '@kit.BasicServicesKit'; 199 200let subscribeCallback = (err: BusinessError) => { 201 if (err) { 202 console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`); 203 } else { 204 console.info("subscribeCallback"); 205 } 206}; 207let unsubscribeCallback = (err: BusinessError) => { 208 if (err) { 209 console.error(`unsubscribe failed, code is ${err.code}, message is ${err.message}`); 210 } else { 211 console.info("unsubscribeCallback"); 212 } 213}; 214 215let onConnectCallback = () => { 216 console.info('===> onConnect in test'); 217} 218let onDisconnectCallback = () => { 219 console.info('===> onDisconnect in test'); 220} 221 222let subscriber: notificationSubscribe.NotificationSubscriber = { 223 onConnect: onConnectCallback, 224 onDisconnect: onDisconnectCallback 225}; 226 227// The onConnect callback is invoked when subscription to the notification is complete. 228notificationSubscribe.subscribe(subscriber, subscribeCallback); 229// The onDisconnect callback is invoked when unsubscription to the notification is complete. 230notificationSubscribe.unsubscribe(subscriber, unsubscribeCallback); 231``` 232 233## onDestroy 234 235onDestroy?: () => void 236 237Called when the service is disconnected. 238 239**System capability**: SystemCapability.Notification.Notification 240 241**System API**: This is a system API. 242 243**Parameters** 244 245| Name| Type| Mandatory| Description| 246| ------------ | ------------------------ | ---- | -------------------------- | 247| onDestroy | () => void | No| Callback used when the service is disconnected.| 248 249**Example** 250 251```ts 252import { BusinessError } from '@kit.BasicServicesKit'; 253 254let subscribeCallback = (err: BusinessError) => { 255 if (err) { 256 console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`); 257 } else { 258 console.info("subscribeCallback"); 259 } 260}; 261 262let onDestroyCallback = () => { 263 console.info('===> onDestroy in test'); 264} 265 266let subscriber: notificationSubscribe.NotificationSubscriber = { 267 onDestroy: onDestroyCallback 268}; 269 270notificationSubscribe.subscribe(subscriber, subscribeCallback); 271``` 272 273## onDoNotDisturbDateChange<sup>8+</sup>(deprecated) 274 275onDoNotDisturbDateChange?: (mode: notification.DoNotDisturbDate) => void 276 277Called when the DND time settings are changed. 278 279> **NOTE** 280> 281> This API is supported since API version 8 and is deprecated since API version 11. You are advised to use [onDoNotDisturbChanged](js-apis-inner-notification-notificationSubscriber-sys.md#ondonotdisturbchanged11) instead. 282 283**System capability**: SystemCapability.Notification.Notification 284 285**System API**: This is a system API. 286 287**Parameters** 288 289| Name| Type| Mandatory| Description| 290| ------------ | ------------------------ | ---- | -------------------------- | 291| onDoNotDisturbDateChange | (mode: notification.[DoNotDisturbDate](js-apis-notification-sys.md#donotdisturbdate8-deprecated)) => void | No| Callback used to return DND time setting updates.| 292 293**Example** 294 295```ts 296import { BusinessError } from '@kit.BasicServicesKit'; 297import Notification from '@ohos.notification'; 298 299let subscribeCallback = (err: BusinessError) => { 300 if (err) { 301 console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`); 302 } else { 303 console.info("subscribeCallback"); 304 } 305}; 306 307let onDoNotDisturbDateChangeCallback = (mode: Notification.DoNotDisturbDate) => { 308 console.info('===> onDoNotDisturbDateChange:' + mode); 309} 310 311let subscriber: notificationSubscribe.NotificationSubscriber = { 312 onDoNotDisturbDateChange: onDoNotDisturbDateChangeCallback 313}; 314 315notificationSubscribe.subscribe(subscriber, subscribeCallback); 316``` 317 318## onDoNotDisturbChanged<sup>11+</sup> 319 320onDoNotDisturbChanged?: (mode: notificationManager.DoNotDisturbDate) => void 321 322Called when the DND time settings are changed. 323 324**System API**: This is a system API. 325 326**System capability**: SystemCapability.Notification.Notification 327 328**Parameters** 329 330| Name| Type| Mandatory| Description| 331| ------------ | ------------------------ | ---- | -------------------------- | 332| onDoNotDisturbChanged | (mode: notificationManager.[DoNotDisturbDate](js-apis-notificationManager-sys.md#donotdisturbdate)) => void | No| Callback used to return DND time setting updates.| 333 334**Example** 335 336```ts 337import { BusinessError } from '@kit.BasicServicesKit'; 338import { notificationSubscribe, notificationManager } from '@kit.NotificationKit'; 339 340let subscribeCallback = (err: BusinessError) => { 341 if (err) { 342 console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`); 343 } else { 344 console.info("subscribeCallback"); 345 } 346}; 347 348let onDoNotDisturbChangedCallback = (mode: notificationManager.DoNotDisturbDate) => { 349 console.info('===> onDoNotDisturbChanged:' + JSON.stringify(mode)); 350} 351 352let subscriber: notificationSubscribe.NotificationSubscriber = { 353 onDoNotDisturbChanged: onDoNotDisturbChangedCallback 354}; 355 356notificationSubscribe.subscribe(subscriber, subscribeCallback); 357``` 358 359## onEnabledNotificationChanged<sup>8+</sup> 360 361onEnabledNotificationChanged?: (callbackData: EnabledNotificationCallbackData) => void 362 363Listens for the notification enabled state changes. 364 365**System capability**: SystemCapability.Notification.Notification 366 367**System API**: This is a system API. 368 369**Parameters** 370 371| Name| Type | Mandatory| Description| 372| ------------ |--------------------------------------------------------------------------------------------------------------| ---- | -------------------------- | 373| onEnabledNotificationChanged | (callbackData: [EnabledNotificationCallbackData](#enablednotificationcallbackdata8)) => void | No| Callback used to return the listened application information.| 374 375**Example** 376 377```ts 378import { BusinessError } from '@kit.BasicServicesKit'; 379 380let subscribeCallback = (err: BusinessError) => { 381 if (err) { 382 console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`); 383 } else { 384 console.info("subscribeCallback"); 385 } 386}; 387 388let onEnabledNotificationChangedCallback = (callbackData: notificationSubscribe.EnabledNotificationCallbackData) => { 389 console.info("bundle: ", callbackData.bundle); 390 console.info("uid: ", callbackData.uid); 391 console.info("enable: ", callbackData.enable); 392}; 393 394let subscriber: notificationSubscribe.NotificationSubscriber = { 395 onEnabledNotificationChanged: onEnabledNotificationChangedCallback 396}; 397 398notificationSubscribe.subscribe(subscriber, subscribeCallback); 399``` 400 401## onBadgeChanged<sup>10+</sup> 402 403onBadgeChanged?: (data: BadgeNumberCallbackData) => void 404 405Listens for the change of the notification badge number. 406 407**System capability**: SystemCapability.Notification.Notification 408 409**System API**: This is a system API. 410 411**Parameters** 412 413| Name | Type | Mandatory| Description | 414| -------- | ------------------------------------------------------------ | ---- | -------------------------- | 415| onBadgeChanged | (data: [BadgeNumberCallbackData](#badgenumbercallbackdata10)) => void | No | Callback used to return the listened application information.| 416 417**Example** 418 419```ts 420import { BusinessError } from '@kit.BasicServicesKit'; 421 422let subscribeCallback = (err: BusinessError) => { 423 if (err) { 424 console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`); 425 } else { 426 console.info("subscribeCallback"); 427 } 428}; 429 430let subscriber: notificationSubscribe.NotificationSubscriber = { 431 onBadgeChanged: (data) => { 432 console.info("bundle: ", data.bundle); 433 console.info("uid: ", data.uid); 434 console.info("badgeNumber: ", data.badgeNumber); 435 } 436}; 437 438notificationSubscribe.subscribe(subscriber, subscribeCallback); 439``` 440 441## onBadgeEnabledChanged<sup>12+</sup> 442 443onBadgeEnabledChanged?: BadgeEnabledChangedCallback 444 445Listens for the change of the notification badge enabling state. 446 447**System capability**: SystemCapability.Notification.Notification 448 449**System API**: This is a system API. 450 451**Parameters** 452 453| Name | Type | Mandatory| Description | 454| -------- | ------------------------------------------------------------ | ---- | -------------------------- | 455| onBadgeEnabledChanged | [BadgeEnabledChangedCallback](#badgeenabledchangedcallback12) | No | Callback used to return the change of the notification badge enabling state.| 456 457**Example** 458 459```ts 460import { BusinessError } from '@kit.BasicServicesKit'; 461 462let subscribeCallback = (err: BusinessError) => { 463 if (err) { 464 console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`); 465 } else { 466 console.info('subscribeCallback'); 467 } 468}; 469 470let BadgeEnabledChangedCallback = (data: notificationSubscribe.EnabledNotificationCallbackData) => { 471 console.info('onBadgeEnabledChanged, badge enabled state change to: ', JSON.stringify(data)); 472}; 473let subscriber: notificationSubscribe.NotificationSubscriber = { 474 onBadgeEnabledChanged: BadgeEnabledChangedCallback 475}; 476 477notificationSubscribe.subscribe(subscriber, subscribeCallback); 478``` 479 480 481## onBatchCancel<sup>11+</sup> 482 483onBatchCancel?: (data: Array<SubscribeCallbackData\>) => void 484 485Called for batch deletion. 486 487**System capability**: SystemCapability.Notification.Notification 488 489**System API**: This is a system API. 490 491**Parameters** 492 493| Name | Type | Mandatory| Description | 494| -------- | ------------------------------------------------------------ | ---- | -------------------------- | 495| onBatchCancel | (data: Array<[SubscribeCallbackData](#subscribecallbackdata)>) => void | No | Notification information of batch deletion.| 496 497**Example** 498 499```ts 500import { BusinessError } from '@kit.BasicServicesKit'; 501 502let subscribeCallback = (err: BusinessError) => { 503 if (err) { 504 console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`); 505 } else { 506 console.info("subscribeCallback"); 507 } 508}; 509 510let onBatchCancelCallBack = (data: Array<notificationSubscribe.SubscribeCallbackData>) => { 511 console.info('===> onBatchCancel in test'); 512 let req = data[0].request; 513 console.info('===> onBatchCancel callback req.id:' + req.id); 514}; 515 516let subscriber: notificationSubscribe.NotificationSubscriber = { 517 onBatchCancel: onBatchCancelCallBack 518}; 519 520notificationSubscribe.subscribe(subscriber, subscribeCallback); 521``` 522## SubscribeCallbackData 523 524**System capability**: SystemCapability.Notification.Notification 525 526**System API**: This is a system API. 527 528| Name | Type | Readable| Writable| Description | 529| --------------- |--------------------------------------------------------------------| ---- | --- | -------- | 530| request | [NotificationRequest](js-apis-inner-notification-notificationRequest-sys.md#notificationrequest) | Yes | No | Notification content.| 531| sortingMap | [NotificationSortingMap](js-apis-inner-notification-notificationSortingMap-sys.md) | Yes | No | Notification sorting information.| 532| reason | number | Yes | No | Reason for deletion. The options are as follows:<br>**1**: The notification is deleted after being clicked.<br>**2**: The notification is deleted by the user.| 533| sound | string | Yes | No | Sound used for notification.| 534| vibrationValues | Array\<number\> | Yes | No | Vibration used for notification.| 535 536 537## EnabledNotificationCallbackData<sup>8+</sup> 538 539**System capability**: SystemCapability.Notification.Notification 540 541**System API**: This is a system API. 542 543| Name | Type | Readable| Writable| Description | 544| ------ | ------- | ---- | --- | ---------------- | 545| bundle | string | Yes | No | Bundle name of the application. | 546| uid | number | Yes | No | UID of the application. | 547| enable | boolean | Yes | No | Notification enabled state of the application.| 548 549 550## BadgeNumberCallbackData<sup>10+</sup> 551 552**System capability**: SystemCapability.Notification.Notification 553 554**System API**: This is a system API. 555 556| Name | Type | Readable| Writable| Description | 557| ----------- | ------ | ---- | ---- | ------------ | 558| bundle | string | Yes | No | Bundle name of the application.| 559| uid | number | Yes | No | UID of the application. | 560| badgeNumber | number | Yes | No | Number of notifications displayed on the application icon. | 561| instanceKey | number | Yes | No | Key value of an application instance. | 562 563 564## BadgeEnabledChangedCallback<sup>12+</sup> 565 566**System capability**: SystemCapability.Notification.Notification 567 568**System API**: This is a system API. 569 570| Name | Type | Read Only| Optional| Description | 571| ----------- | ------ | ---- | ---- |------------ | 572| data | [EnabledNotificationCallbackData](#enablednotificationcallbackdata8) | Yes | Yes | Callback used to return the listened badge enabling state.| 573