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