# NotificationSubscriber (System API) The **NotificationSubscriber** module provides callbacks for receiving or removing notifications and serves as the input parameter of [subscribe](./js-apis-notificationSubscribe-sys.md). > **NOTE** > > 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. > > The APIs provided by this module are system APIs. ## Modules to Import ```js import { notificationSubscribe } from '@kit.NotificationKit'; ``` ## onConsume onConsume?: (data: SubscribeCallbackData) => void Called when a new notification is received. **System capability**: SystemCapability.Notification.Notification **System API**: This is a system API. **Parameters** | Name| Type| Mandatory| Description| | ------------ | ------------------------ | ---- | -------------------------- | | onConsume | (data: [SubscribeCallbackData](#subscribecallbackdata)) => void | No| Information about the notification received.| **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; let subscribeCallback = (err: BusinessError) => { if (err) { console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`); } else { console.info("subscribeCallback"); } }; let onConsumeCallback = (data: notificationSubscribe.SubscribeCallbackData) => { console.info('===> onConsume in test'); let req = data.request; console.info('===> onConsume callback req.id:' + req.id); }; let subscriber: notificationSubscribe.NotificationSubscriber = { onConsume: onConsumeCallback }; notificationSubscribe.subscribe(subscriber, subscribeCallback); ``` ## onCancel onCancel?: (data: SubscribeCallbackData) => void Called when a notification is canceled. **System capability**: SystemCapability.Notification.Notification **System API**: This is a system API. **Parameters** | Name| Type| Mandatory| Description| | ------------ | ------------------------ | ---- | -------------------------- | | onCancel | (data: [SubscribeCallbackData](#subscribecallbackdata)) => void | No| Information about the notification to cancel.| **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; let subscribeCallback = (err: BusinessError) => { if (err) { console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`); } else { console.info("subscribeCallback"); } }; let onCancelCallback = (data: notificationSubscribe.SubscribeCallbackData) => { console.info('===> onCancel in test'); let req = data.request; console.info('===> onCancel callback req.id:' + req.id); } let subscriber: notificationSubscribe.NotificationSubscriber = { onCancel: onCancelCallback }; notificationSubscribe.subscribe(subscriber, subscribeCallback); ``` ## onUpdate onUpdate?: (data: NotificationSortingMap) => void Called when notification sorting is updated. **System capability**: SystemCapability.Notification.Notification **System API**: This is a system API. **Parameters** | Name| Type| Mandatory| Description| | ------------ | ------------------------ | ---- | -------------------------- | | onUpdate | (data: [NotificationSortingMap](js-apis-inner-notification-notificationSortingMap-sys.md)) => void | No| Latest notification sorting list.| **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; let subscribeCallback = (err: BusinessError) => { if (err) { console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`); } else { console.info("subscribeCallback"); } }; let subscriber: notificationSubscribe.NotificationSubscriber = { onUpdate: (map) => { console.info('===> onUpdateCallback map:' + JSON.stringify(map)); } }; notificationSubscribe.subscribe(subscriber, subscribeCallback); ``` ## onConnect onConnect?: () => void Called when subscription is complete. **System capability**: SystemCapability.Notification.Notification **System API**: This is a system API. **Parameters** | Name| Type| Mandatory| Description| | ------------ | ------------------------ | ---- | -------------------------- | | onConnect | () => void | No| Callback invoked when subscription is complete.| **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; let subscribeCallback = (err: BusinessError) => { if (err) { console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`); } else { console.info("subscribeCallback"); } }; let onConnectCallback = () => { console.info('===> onConnect in test'); } let subscriber: notificationSubscribe.NotificationSubscriber = { onConnect: onConnectCallback }; notificationSubscribe.subscribe(subscriber, subscribeCallback); ``` ## onDisconnect onDisconnect?: () => void Called when unsubscription is complete. **System capability**: SystemCapability.Notification.Notification **System API**: This is a system API. **Parameters** | Name| Type| Mandatory| Description| | ------------ | ------------------------ | ---- | -------------------------- | | onDisconnect | () => void | No| Callback invoked when unsubscription is complete.| **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; let subscribeCallback = (err: BusinessError) => { if (err) { console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`); } else { console.info("subscribeCallback"); } }; let unsubscribeCallback = (err: BusinessError) => { if (err) { console.error(`unsubscribe failed, code is ${err.code}, message is ${err.message}`); } else { console.info("unsubscribeCallback"); } }; let onConnectCallback = () => { console.info('===> onConnect in test'); } let onDisconnectCallback = () => { console.info('===> onDisconnect in test'); } let subscriber: notificationSubscribe.NotificationSubscriber = { onConnect: onConnectCallback, onDisconnect: onDisconnectCallback }; // The onConnect callback is invoked when subscription to the notification is complete. notificationSubscribe.subscribe(subscriber, subscribeCallback); // The onDisconnect callback is invoked when unsubscription to the notification is complete. notificationSubscribe.unsubscribe(subscriber, unsubscribeCallback); ``` ## onDestroy onDestroy?: () => void Called when the service is disconnected. **System capability**: SystemCapability.Notification.Notification **System API**: This is a system API. **Parameters** | Name| Type| Mandatory| Description| | ------------ | ------------------------ | ---- | -------------------------- | | onDestroy | () => void | No| Callback used when the service is disconnected.| **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; let subscribeCallback = (err: BusinessError) => { if (err) { console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`); } else { console.info("subscribeCallback"); } }; let onDestroyCallback = () => { console.info('===> onDestroy in test'); } let subscriber: notificationSubscribe.NotificationSubscriber = { onDestroy: onDestroyCallback }; notificationSubscribe.subscribe(subscriber, subscribeCallback); ``` ## onDoNotDisturbDateChange8+(deprecated) onDoNotDisturbDateChange?: (mode: notification.DoNotDisturbDate) => void Called when the DND time settings are changed. > **NOTE** > > 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. **System capability**: SystemCapability.Notification.Notification **System API**: This is a system API. **Parameters** | Name| Type| Mandatory| Description| | ------------ | ------------------------ | ---- | -------------------------- | | onDoNotDisturbDateChange | (mode: notification.[DoNotDisturbDate](js-apis-notification-sys.md#donotdisturbdate8-deprecated)) => void | No| Callback used to return DND time setting updates.| **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import Notification from '@ohos.notification'; let subscribeCallback = (err: BusinessError) => { if (err) { console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`); } else { console.info("subscribeCallback"); } }; let onDoNotDisturbDateChangeCallback = (mode: Notification.DoNotDisturbDate) => { console.info('===> onDoNotDisturbDateChange:' + mode); } let subscriber: notificationSubscribe.NotificationSubscriber = { onDoNotDisturbDateChange: onDoNotDisturbDateChangeCallback }; notificationSubscribe.subscribe(subscriber, subscribeCallback); ``` ## onDoNotDisturbChanged11+ onDoNotDisturbChanged?: (mode: notificationManager.DoNotDisturbDate) => void Called when the DND time settings are changed. **System API**: This is a system API. **System capability**: SystemCapability.Notification.Notification **Parameters** | Name| Type| Mandatory| Description| | ------------ | ------------------------ | ---- | -------------------------- | | onDoNotDisturbChanged | (mode: notificationManager.[DoNotDisturbDate](js-apis-notificationManager-sys.md#donotdisturbdate)) => void | No| Callback used to return DND time setting updates.| **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { notificationSubscribe, notificationManager } from '@kit.NotificationKit'; let subscribeCallback = (err: BusinessError) => { if (err) { console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`); } else { console.info("subscribeCallback"); } }; let onDoNotDisturbChangedCallback = (mode: notificationManager.DoNotDisturbDate) => { console.info('===> onDoNotDisturbChanged:' + JSON.stringify(mode)); } let subscriber: notificationSubscribe.NotificationSubscriber = { onDoNotDisturbChanged: onDoNotDisturbChangedCallback }; notificationSubscribe.subscribe(subscriber, subscribeCallback); ``` ## onEnabledNotificationChanged8+ onEnabledNotificationChanged?: (callbackData: EnabledNotificationCallbackData) => void Listens for the notification enabled state changes. **System capability**: SystemCapability.Notification.Notification **System API**: This is a system API. **Parameters** | Name| Type | Mandatory| Description| | ------------ |--------------------------------------------------------------------------------------------------------------| ---- | -------------------------- | | onEnabledNotificationChanged | (callbackData: [EnabledNotificationCallbackData](#enablednotificationcallbackdata8)) => void | No| Callback used to return the listened application information.| **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; let subscribeCallback = (err: BusinessError) => { if (err) { console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`); } else { console.info("subscribeCallback"); } }; let onEnabledNotificationChangedCallback = (callbackData: notificationSubscribe.EnabledNotificationCallbackData) => { console.info("bundle: ", callbackData.bundle); console.info("uid: ", callbackData.uid); console.info("enable: ", callbackData.enable); }; let subscriber: notificationSubscribe.NotificationSubscriber = { onEnabledNotificationChanged: onEnabledNotificationChangedCallback }; notificationSubscribe.subscribe(subscriber, subscribeCallback); ``` ## onBadgeChanged10+ onBadgeChanged?: (data: BadgeNumberCallbackData) => void Listens for the change of the notification badge number. **System capability**: SystemCapability.Notification.Notification **System API**: This is a system API. **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------ | ---- | -------------------------- | | onBadgeChanged | (data: [BadgeNumberCallbackData](#badgenumbercallbackdata10)) => void | No | Callback used to return the listened application information.| **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; let subscribeCallback = (err: BusinessError) => { if (err) { console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`); } else { console.info("subscribeCallback"); } }; let subscriber: notificationSubscribe.NotificationSubscriber = { onBadgeChanged: (data) => { console.info("bundle: ", data.bundle); console.info("uid: ", data.uid); console.info("badgeNumber: ", data.badgeNumber); } }; notificationSubscribe.subscribe(subscriber, subscribeCallback); ``` ## onBadgeEnabledChanged12+ onBadgeEnabledChanged?: BadgeEnabledChangedCallback Listens for the change of the notification badge enabling state. **System capability**: SystemCapability.Notification.Notification **System API**: This is a system API. **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------ | ---- | -------------------------- | | onBadgeEnabledChanged | [BadgeEnabledChangedCallback](#badgeenabledchangedcallback12) | No | Callback used to return the change of the notification badge enabling state.| **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; let subscribeCallback = (err: BusinessError) => { if (err) { console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`); } else { console.info('subscribeCallback'); } }; let BadgeEnabledChangedCallback = (data: notificationSubscribe.EnabledNotificationCallbackData) => { console.info('onBadgeEnabledChanged, badge enabled state change to: ', JSON.stringify(data)); }; let subscriber: notificationSubscribe.NotificationSubscriber = { onBadgeEnabledChanged: BadgeEnabledChangedCallback }; notificationSubscribe.subscribe(subscriber, subscribeCallback); ``` ## onBatchCancel11+ onBatchCancel?: (data: Array) => void Called for batch deletion. **System capability**: SystemCapability.Notification.Notification **System API**: This is a system API. **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------ | ---- | -------------------------- | | onBatchCancel | (data: Array<[SubscribeCallbackData](#subscribecallbackdata)>) => void | No | Notification information of batch deletion.| **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; let subscribeCallback = (err: BusinessError) => { if (err) { console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`); } else { console.info("subscribeCallback"); } }; let onBatchCancelCallBack = (data: Array) => { console.info('===> onBatchCancel in test'); let req = data[0].request; console.info('===> onBatchCancel callback req.id:' + req.id); }; let subscriber: notificationSubscribe.NotificationSubscriber = { onBatchCancel: onBatchCancelCallBack }; notificationSubscribe.subscribe(subscriber, subscribeCallback); ``` ## SubscribeCallbackData **System capability**: SystemCapability.Notification.Notification **System API**: This is a system API. | Name | Type | Readable| Writable| Description | | --------------- |--------------------------------------------------------------------| ---- | --- | -------- | | request | [NotificationRequest](js-apis-inner-notification-notificationRequest-sys.md#notificationrequest) | Yes | No | Notification content.| | sortingMap | [NotificationSortingMap](js-apis-inner-notification-notificationSortingMap-sys.md) | Yes | No | Notification sorting information.| | reason | number | Yes | No | Reason for deletion. The options are as follows:
**1**: The notification is deleted after being clicked.
**2**: The notification is deleted by the user.| | sound | string | Yes | No | Sound used for notification.| | vibrationValues | Array\ | Yes | No | Vibration used for notification.| ## EnabledNotificationCallbackData8+ **System capability**: SystemCapability.Notification.Notification **System API**: This is a system API. | Name | Type | Readable| Writable| Description | | ------ | ------- | ---- | --- | ---------------- | | bundle | string | Yes | No | Bundle name of the application. | | uid | number | Yes | No | UID of the application. | | enable | boolean | Yes | No | Notification enabled state of the application.| ## BadgeNumberCallbackData10+ **System capability**: SystemCapability.Notification.Notification **System API**: This is a system API. | Name | Type | Readable| Writable| Description | | ----------- | ------ | ---- | ---- | ------------ | | bundle | string | Yes | No | Bundle name of the application.| | uid | number | Yes | No | UID of the application. | | badgeNumber | number | Yes | No | Number of notifications displayed on the application icon. | | instanceKey | number | Yes | No | Key value of an application instance. | ## BadgeEnabledChangedCallback12+ **System capability**: SystemCapability.Notification.Notification **System API**: This is a system API. | Name | Type | Read Only| Optional| Description | | ----------- | ------ | ---- | ---- |------------ | | data | [EnabledNotificationCallbackData](#enablednotificationcallbackdata8) | Yes | Yes | Callback used to return the listened badge enabling state.|