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](#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 | Yes | 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](#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 | Yes | 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](js-apis-inner-notification-notificationSortingMap-sys.md)) => 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 | Yes | 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 the 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 | Yes | Callback invoked when the 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 | Yes | 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 | Yes | 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](js-apis-notification-sys.md#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#donotdisturbdate)) => void | Yes | Callback used to return DND time setting updates. | 292 293**Example** 294 295```ts 296import { BusinessError } from '@kit.BasicServicesKit'; 297 298let subscribeCallback = (err: BusinessError) => { 299 if (err) { 300 console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`); 301 } else { 302 console.info("subscribeCallback"); 303 } 304}; 305 306let onDoNotDisturbDateChangeCallback = (mode: Notification.DoNotDisturbDate) => { 307 console.info('===> onDoNotDisturbDateChange:' + mode); 308} 309 310let subscriber: notificationSubscribe.NotificationSubscriber = { 311 onDoNotDisturbDateChange: onDoNotDisturbDateChangeCallback 312}; 313 314notificationSubscribe.subscribe(subscriber, subscribeCallback); 315``` 316 317## onDoNotDisturbChanged<sup>11+</sup> 318 319onDoNotDisturbChanged?:(mode: notificationManager.[DoNotDisturbDate](js-apis-notificationManager-sys.md#donotdisturbdate)) => void 320 321Called when the DND time settings are changed. 322 323**System API**: This is a system API. 324 325**System capability**: SystemCapability.Notification.Notification 326 327**Parameters** 328 329| Name | Type | Mandatory | Description | 330| ------------ | ------------------------ | ---- | -------------------------- | 331| onDoNotDisturbChanged | (mode: notificationManager.[DoNotDisturbDate](js-apis-notificationManager-sys.md#donotdisturbdate)) => void | Yes | Callback used to return DND time setting updates. | 332 333**Example** 334 335```ts 336import { BusinessError } from '@kit.BasicServicesKit'; 337import { notificationSubscribe, notificationManager } from '@kit.NotificationKit'; 338 339let subscribeCallback = (err: BusinessError) => { 340 if (err) { 341 console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`); 342 } else { 343 console.info("subscribeCallback"); 344 } 345}; 346 347let onDoNotDisturbChangedCallback = (mode: notificationManager.DoNotDisturbDate) => { 348 console.info('===> onDoNotDisturbChanged:' + mode); 349} 350 351let subscriber: notificationSubscribe.NotificationSubscriber = { 352 onDoNotDisturbChanged: onDoNotDisturbChangedCallback 353}; 354 355notificationSubscribe.subscribe(subscriber, subscribeCallback); 356``` 357 358## onEnabledNotificationChanged<sup>8+</sup> 359 360onEnabledNotificationChanged?:(callbackData: [EnabledNotificationCallbackData](#enablednotificationcallbackdata8)) => void 361 362Listens for the notification enabled status changes. 363 364**System capability**: SystemCapability.Notification.Notification 365 366**System API**: This is a system API. 367 368**Parameters** 369 370| Name | Type | Mandatory | Description | 371| ------------ |--------------------------------------------------------------------------------------------------------------| ---- | -------------------------- | 372| onEnabledNotificationChanged | (callbackData: [EnabledNotificationCallbackData](#enablednotificationcallbackdata8)) => void | Yes | Callback used to return the listened application information. | 373 374**Example** 375 376```ts 377import { BusinessError } from '@kit.BasicServicesKit'; 378 379let subscribeCallback = (err: BusinessError) => { 380 if (err) { 381 console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`); 382 } else { 383 console.info("subscribeCallback"); 384 } 385}; 386 387let onEnabledNotificationChangedCallback = (callbackData: notificationSubscribe.EnabledNotificationCallbackData) => { 388 console.info("bundle: ", callbackData.bundle); 389 console.info("uid: ", callbackData.uid); 390 console.info("enable: ", callbackData.enable); 391}; 392 393let subscriber: notificationSubscribe.NotificationSubscriber = { 394 onEnabledNotificationChanged: onEnabledNotificationChangedCallback 395}; 396 397notificationSubscribe.subscribe(subscriber, subscribeCallback); 398``` 399 400## onBadgeChanged<sup>10+</sup> 401 402 onBadgeChanged?:(data: [BadgeNumberCallbackData](#badgenumbercallbackdata10)) => void 403 404Listens for the change of the notification badge number. 405 406**System capability**: SystemCapability.Notification.Notification 407 408**System API**: This is a system API. 409 410**Parameters** 411 412| Name | Type | Mandatory | Description | 413| -------- | ------------------------------------------------------------ | ---- | -------------------------- | 414| onBadgeChanged | (data: [BadgeNumberCallbackData](#badgenumbercallbackdata10)) => void | Yes | Callback used to return the listened application information. | 415 416**Example** 417 418```ts 419import { BusinessError } from '@kit.BasicServicesKit'; 420 421let subscribeCallback = (err: BusinessError) => { 422 if (err) { 423 console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`); 424 } else { 425 console.info("subscribeCallback"); 426 } 427}; 428 429let subscriber: notificationSubscribe.NotificationSubscriber = { 430 onBadgeChanged: (data) => { 431 console.info("bundle: ", data.bundle); 432 console.info("uid: ", data.uid); 433 console.info("badgeNumber: ", data.badgeNumber); 434 } 435}; 436 437notificationSubscribe.subscribe(subscriber, subscribeCallback); 438``` 439 440## onBadgeEnabledChanged<sup>12+</sup> 441 442onBadgeEnabledChanged?: [BadgeEnabledChangedCallback](#badgeenabledchangedcallback12) 443 444Listens for the change of the notification badge enabling status. 445 446**System capability**: SystemCapability.Notification.Notification 447 448**System API**: This is a system API. 449 450**Parameters** 451 452| Name | Type | Mandatory | Description | 453| -------- | ------------------------------------------------------------ | ---- | -------------------------- | 454| onBadgeEnabledChanged | [BadgeEnabledChangedCallback](#badgeenabledchangedcallback12) | Yes | Callback used to return the change of the notification badge enabling status. | 455 456**Example** 457 458```ts 459import { BusinessError } from '@kit.BasicServicesKit'; 460 461let subscribeCallback = (err: BusinessError) => { 462 if (err) { 463 console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`); 464 } else { 465 console.info('subscribeCallback'); 466 } 467}; 468 469let BadgeEnabledChangedCallback = (data: notificationSubscribe.EnabledNotificationCallbackData) => { 470 console.info('onBadgeEnabledChanged, badge enabled state change to: ', JSON.stringify(data)); 471}; 472let subscriber: notificationSubscribe.NotificationSubscriber = { 473 onBadgeEnabledChanged: BadgeEnabledChangedCallback 474}; 475 476notificationSubscribe.subscribe(subscriber, subscribeCallback); 477``` 478 479 480## onBatchCancel<sup>11+</sup> 481 482 onBatchCancel?:(data: Array<[SubscribeCallbackData](#subscribecallbackdata)>) => void 483 484Called for batch deletion. 485 486**System capability**: SystemCapability.Notification.Notification 487 488**System API**: This is a system API. 489 490**Parameters** 491 492| Name | Type | Mandatory | Description | 493| -------- | ------------------------------------------------------------ | ---- | -------------------------- | 494| onBatchCancel | (data: Array<[SubscribeCallbackData](#subscribecallbackdata)>) => void | Yes | Notification information of batch deletion. | 495 496**Example** 497 498```ts 499import { BusinessError } from '@kit.BasicServicesKit'; 500 501let subscribeCallback = (err: BusinessError) => { 502 if (err) { 503 console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`); 504 } else { 505 console.info("subscribeCallback"); 506 } 507}; 508 509let onBatchCancelCallBack = (data: Array<notificationSubscribe.SubscribeCallbackData>) => { 510 console.info('===> onBatchCancel in test'); 511 let req = data[0].request; 512 console.info('===> onBatchCancel callback req.id:' + req.id); 513}; 514 515let subscriber: notificationSubscribe.NotificationSubscriber = { 516 onBatchCancel: onBatchCancelCallBack 517}; 518 519notificationSubscribe.subscribe(subscriber, subscribeCallback); 520``` 521## SubscribeCallbackData 522 523**System capability**: SystemCapability.Notification.Notification 524 525**System API**: This is a system API. 526 527| Name | Type | Readable | Writable | Description | 528| --------------- |--------------------------------------------------------------------| ---- | --- | -------- | 529| request | [NotificationRequest](js-apis-notification.md#notificationrequest) | Yes | No | Notification content. | 530| sortingMap | [NotificationSortingMap](js-apis-inner-notification-notificationSortingMap-sys.md) | Yes | No | Notification sorting information. | 531| 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.| 532| sound | string | Yes | No | Sound used for notification. | 533| vibrationValues | Array\<number\> | Yes | No | Vibration used for notification. | 534 535 536## EnabledNotificationCallbackData<sup>8+</sup> 537 538**System capability**: SystemCapability.Notification.Notification 539 540**System API**: This is a system API. 541 542| Name | Type | Readable | Writable | Description | 543| ------ | ------- | ---- | --- | ---------------- | 544| bundle | string | Yes | No | Bundle name of the application. | 545| uid | number | Yes | No | UID of the application. | 546| enable | boolean | Yes | No | Notification enabled status of the application. | 547 548 549## BadgeNumberCallbackData<sup>10+</sup> 550 551**System capability**: SystemCapability.Notification.Notification 552 553**System API**: This is a system API. 554 555| Name | Type | Readable | Writable | Description | 556| ----------- | ------ | ---- | ---- | ------------ | 557| bundle | string | Yes | No | Bundle name of the application. | 558| uid | number | Yes | No | UID of the application. | 559| badgeNumber | number | Yes | No | Number of notifications displayed on the application icon. | 560| instanceKey | number | Yes | No | Key value of an application instance. | 561 562 563## BadgeEnabledChangedCallback<sup>12+</sup> 564 565**System capability**: SystemCapability.Notification.Notification 566 567**System API**: This is a system API. 568 569| Name | Type | Read Only | Mandatory | Description | 570| ----------- | ------ | ---- | ---- |------------ | 571| data | [EnabledNotificationCallbackData](#enablednotificationcallbackdata8)) => void | Yes | Yes | Callback used to return the listened badge enabling status. | 572