js-apis-notificationSubscribe.md 32.9 KB
Newer Older
Z
zengyawen 已提交
1
# @ohos.notificationSubscribe (NotificationSubscribe模块)
2 3 4 5 6 7 8 9 10 11

本模块提供通知订阅、取消订阅、通知移除等,一般情况下,只有系统应用具有这些操作权限。

> **说明:**
>
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

## 导入模块

```js
12
import notificationSubscribe from '@ohos.notificationSubscribe';
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
```



## NotificationSubscribe.subscribe

subscribe(subscriber: NotificationSubscriber, info: NotificationSubscribeInfo, callback: AsyncCallback\<void\>): void

订阅通知并指定订阅信息(callback形式)。

**系统能力**:SystemCapability.Notification.Notification

**需要权限**: ohos.permission.NOTIFICATION_CONTROLLER

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

F
fangJinliang1 已提交
31
| 参数名       | 类型                      | 必填 | 说明             |
32 33
| ---------- | ------------------------- | ---- | ---------------- |
| subscriber | [NotificationSubscriber](#notificationsubscriber)    | 是   | 通知订阅对象。     |
F
fangJinliang1 已提交
34
| info       | [NotificationSubscribeInfo](#notificationsubscribeinfo) | 是   | 通知订阅信息。 |
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| callback   | AsyncCallback\<void\>     | 是   | 订阅动作回调函数。 |

**错误码:**

| 错误码ID | 错误信息                            |
| -------- | ----------------------------------- |
| 1600001  | Internal error.                     |
| 1600002  | Marshalling or unmarshalling error. |
| 1600003  | Failed to connect service.          |

**示例:**

```js
//subscribe回调
function subscribeCallback(err) {
    if (err) {
        console.info("subscribe failed " + JSON.stringify(err));
    } else {
        console.info("subscribe success");
    }
}
function onConsumeCallback(data) {
	console.info("Consume callback: " + JSON.stringify(data));
}
F
fangJinliang1 已提交
59
let subscriber = {
60
    onConsume: onConsumeCallback
F
fangJinliang1 已提交
61 62
};
let info = {
63
    bundleNames: ["bundleName1","bundleName2"]
F
fangJinliang1 已提交
64
};
65
notificationSubscribe.subscribe(subscriber, info, subscribeCallback);
66 67 68 69 70 71
```

## NotificationSubscribe.subscribe

subscribe(subscriber: NotificationSubscriber, callback: AsyncCallback\<void\>): void

F
fangJinliang1 已提交
72
订阅当前用户下所有应用的通知(callback形式)。
73 74 75 76 77 78 79 80 81

**系统能力**:SystemCapability.Notification.Notification

**需要权限**: ohos.permission.NOTIFICATION_CONTROLLER

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

F
fangJinliang1 已提交
82
| 参数名       | 类型                   | 必填 | 说明             |
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
| ---------- | ---------------------- | ---- | ---------------- |
| subscriber | [NotificationSubscriber](#notificationsubscriber) | 是   | 通知订阅对象。     |
| callback   | AsyncCallback\<void\>  | 是   | 订阅动作回调函数。 |

**错误码:**

| 错误码ID | 错误信息                            |
| -------- | ----------------------------------- |
| 1600001  | Internal error.                     |
| 1600002  | Marshalling or unmarshalling error. |
| 1600003  | Failed to connect service.          |

**示例:**

```js
function subscribeCallback(err) {
    if (err) {
        console.info("subscribe failed " + JSON.stringify(err));
    } else {
        console.info("subscribe success");
    }
}
function onConsumeCallback(data) {
	console.info("Consume callback: " + JSON.stringify(data));
}
F
fangJinliang1 已提交
108
let subscriber = {
109
    onConsume: onConsumeCallback
F
fangJinliang1 已提交
110
};
111
notificationSubscribe.subscribe(subscriber, subscribeCallback);
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
```



## NotificationSubscribe.subscribe

subscribe(subscriber: NotificationSubscriber, info?: NotificationSubscribeInfo): Promise\<void\>

订阅通知并指定订阅信息(Promise形式)。

**系统能力**:SystemCapability.Notification.Notification

**需要权限**: ohos.permission.NOTIFICATION_CONTROLLER

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

F
fangJinliang1 已提交
130
| 参数名       | 类型                      | 必填 | 说明         |
131 132
| ---------- | ------------------------- | ---- | ------------ |
| subscriber | [NotificationSubscriber](#notificationsubscriber)    | 是   | 通知订阅对象。 |
F
fangJinliang1 已提交
133
| info       | [NotificationSubscribeInfo](#notificationsubscribeinfo) | 否   | 通知订阅信息。   |
134 135 136 137 138 139 140 141 142 143 144 145 146

**错误码:**

| 错误码ID | 错误信息                            |
| -------- | ----------------------------------- |
| 1600001  | Internal error.                     |
| 1600002  | Marshalling or unmarshalling error. |
| 1600003  | Failed to connect service.          |

**示例:**

```js
function onConsumeCallback(data) {
F
fangJinliang1 已提交
147
    console.info("Consume callback: " + JSON.stringify(data));
148
}
F
fangJinliang1 已提交
149
let subscriber = {
150 151
    onConsume: onConsumeCallback
};
152
notificationSubscribe.subscribe(subscriber).then(() => {
F
fangJinliang1 已提交
153
	console.info("subscribe success");
154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
});
```



## NotificationSubscribe.unsubscribe

unsubscribe(subscriber: NotificationSubscriber, callback: AsyncCallback\<void\>): void

取消订阅(callbcak形式)。

**系统能力**:SystemCapability.Notification.Notification

**需要权限**: ohos.permission.NOTIFICATION_CONTROLLER

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

F
fangJinliang1 已提交
173
| 参数名       | 类型                   | 必填 | 说明                 |
174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195
| ---------- | ---------------------- | ---- | -------------------- |
| subscriber | [NotificationSubscriber](#notificationsubscriber) | 是   | 通知订阅对象。         |
| callback   | AsyncCallback\<void\>  | 是   | 取消订阅动作回调函数。 |

**错误码:**

| 错误码ID | 错误信息                            |
| -------- | ----------------------------------- |
| 1600001  | Internal error.                     |
| 1600002  | Marshalling or unmarshalling error. |
| 1600003  | Failed to connect service.          |

**示例:**

```js
function unsubscribeCallback(err) {
    if (err) {
        console.info("unsubscribe failed " + JSON.stringify(err));
    } else {
        console.info("unsubscribe success");
    }
}
F
fangJinliang1 已提交
196
function onDisconnectCallback(data) {
197 198
	console.info("Cancel callback: " + JSON.stringify(data));
}
F
fangJinliang1 已提交
199
let subscriber = {
F
fangJinliang1 已提交
200
    onDisconnect: onDisconnectCallback
F
fangJinliang1 已提交
201
};
202
notificationSubscribe.unsubscribe(subscriber, unsubscribeCallback);
203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218
```

## NotificationSubscribe.unsubscribe

unsubscribe(subscriber: NotificationSubscriber): Promise\<void\>

取消订阅(Promise形式)。

**系统能力**:SystemCapability.Notification.Notification

**需要权限**: ohos.permission.NOTIFICATION_CONTROLLER

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

F
fangJinliang1 已提交
219
| 参数名       | 类型                   | 必填 | 说明         |
220 221 222 223 224 225 226 227 228 229 230 231 232 233
| ---------- | ---------------------- | ---- | ------------ |
| subscriber | [NotificationSubscriber](#notificationsubscriber) | 是   | 通知订阅对象。 |

**错误码:**

| 错误码ID | 错误信息                            |
| -------- | ----------------------------------- |
| 1600001  | Internal error.                     |
| 1600002  | Marshalling or unmarshalling error. |
| 1600003  | Failed to connect service.          |

**示例:**

```js
F
fangJinliang1 已提交
234
function onDisconnectCallback(data) {
235 236
	console.info("Cancel callback: " + JSON.stringify(data));
}
F
fangJinliang1 已提交
237
let subscriber = {
F
fangJinliang1 已提交
238
    onDisconnect: onDisconnectCallback
239
};
240
notificationSubscribe.unsubscribe(subscriber).then(() => {
F
fangJinliang1 已提交
241
	console.info("unsubscribe success");
242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258
});
```

## NotificationSubscribe.remove

remove(bundle: BundleOption, notificationKey: NotificationKey, reason: RemoveReason, callback: AsyncCallback\<void\>): void

删除指定通知(Callback形式)。

**系统能力**:SystemCapability.Notification.Notification

**需要权限**: ohos.permission.NOTIFICATION_CONTROLLER

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

F
fangJinliang1 已提交
259
| 参数名            | 类型                                | 必填 | 说明                 |
260
| --------------- |   ----------------------------------| ---- | -------------------- |
F
fangJinliang1 已提交
261
| bundle          | [BundleOption](#bundleoption)       | 是   | 指定应用的包信息。           |
262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285
| notificationKey | [NotificationKey](#notificationkey) | 是   | 通知键值。             |
| reason          | [RemoveReason](#removereason)      | 是   | 通知删除原因。         |
| callback        | AsyncCallback\<void\>               | 是   | 删除指定通知回调函数。 |

**错误码:**

| 错误码ID | 错误信息                                 |
| -------- | ---------------------------------------- |
| 1600001  | Internal error.                          |
| 1600002  | Marshalling or unmarshalling error.      |
| 1600003  | Failed to connect service.               |
| 1600007  | The notification is not exist.           |
| 17700001 | The specified bundle name was not found. |

**示例:**

```js
function removeCallback(err) {
    if (err) {
        console.info("remove failed " + JSON.stringify(err));
    } else {
        console.info("remove success");
    }
}
F
fangJinliang1 已提交
286
let bundle = {
287
    bundle: "bundleName1",
F
fangJinliang1 已提交
288 289
};
let notificationKey = {
290 291
    id: 0,
    label: "label",
F
fangJinliang1 已提交
292
};
293 294
let reason = notificationSubscribe.RemoveReason.CLICK_REASON_REMOVE;
notificationSubscribe.remove(bundle, notificationKey, reason, removeCallback);
295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312
```



## NotificationSubscribe.remove

remove(bundle: BundleOption, notificationKey: NotificationKey, reason: RemoveReason): Promise\<void\>

删除指定通知(Promise形式)。

**系统能力**:SystemCapability.Notification.Notification

**需要权限**: ohos.permission.NOTIFICATION_CONTROLLER

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

F
fangJinliang1 已提交
313
| 参数名            | 类型            | 必填 | 说明       |
314
| --------------- | --------------- | ---- | ---------- |
F
fangJinliang1 已提交
315
| bundle          | [BundleOption](#bundleoption)    | 是   | 指定应用的包信息。 |
316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331
| notificationKey | [NotificationKey](#notificationkey) | 是   | 通知键值。   |
| reason          | [RemoveReason](#removereason) | 是   | 通知删除原因。         |

**错误码:**

| 错误码ID | 错误信息                                 |
| -------- | ---------------------------------------- |
| 1600001  | Internal error.                          |
| 1600002  | Marshalling or unmarshalling error.      |
| 1600003  | Failed to connect service.               |
| 1600007  | The notification is not exist.           |
| 17700001 | The specified bundle name was not found. |

**示例:**

```js
F
fangJinliang1 已提交
332
let bundle = {
333
    bundle: "bundleName1",
F
fangJinliang1 已提交
334 335
};
let notificationKey = {
336 337
    id: 0,
    label: "label",
F
fangJinliang1 已提交
338 339
};
let reason = NotificationSubscribe.RemoveReason.CLICK_REASON_REMOVE;
340
notificationSubscribe.remove(bundle, notificationKey, reason).then(() => {
F
fangJinliang1 已提交
341
	console.info("remove success");
342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358
});
```

## NotificationSubscribe.remove

remove(hashCode: string, reason: RemoveReason, callback: AsyncCallback\<void\>): void

删除指定通知(Callback形式)。

**系统能力**:SystemCapability.Notification.Notification

**需要权限**: ohos.permission.NOTIFICATION_CONTROLLER

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

F
fangJinliang1 已提交
359
| 参数名     | 类型                  | 必填 | 说明                 |
360
| -------- | --------------------- | ---- | -------------------- |
F
fangJinliang1 已提交
361
| hashCode | string                | 是   | 通知唯一ID。可以通过[onConsume](#onconsume)回调的入参[SubscribeCallbackData](#subscribecallbackdata)获取其内部[NotificationRequest](#notificationrequest)对象中的hashCode。 |
362 363 364 365 366 367 368 369 370 371 372 373 374 375 376
| reason   | [RemoveReason](#removereason) | 是   | 通知删除原因。         |
| callback | AsyncCallback\<void\> | 是   | 删除指定通知回调函数。 |

**错误码:**

| 错误码ID | 错误信息                            |
| -------- | ----------------------------------- |
| 1600001  | Internal error.                     |
| 1600002  | Marshalling or unmarshalling error. |
| 1600003  | Failed to connect service.          |
| 1600007  | The notification is not exist.      |

**示例:**

```js
F
fangJinliang1 已提交
377
let hashCode = 'hashCode';
378 379 380 381 382 383 384 385

function removeCallback(err) {
    if (err) {
        console.info("remove failed " + JSON.stringify(err));
    } else {
        console.info("remove success");
    }
}
F
fangJinliang1 已提交
386
let reason = NotificationSubscribe.RemoveReason.CANCEL_REASON_REMOVE;
387
notificationSubscribe.remove(hashCode, reason, removeCallback);
388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403
```

## NotificationSubscribe.remove

remove(hashCode: string, reason: RemoveReason): Promise\<void\>

删除指定通知(Promise形式)。

**系统能力**:SystemCapability.Notification.Notification

**需要权限**: ohos.permission.NOTIFICATION_CONTROLLER

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

F
fangJinliang1 已提交
404
| 参数名     | 类型       | 必填 | 说明       |
405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420
| -------- | ---------- | ---- | ---------- |
| hashCode | string | 是   | 通知唯一ID。 |
| reason   | [RemoveReason](#removereason) | 是   | 通知删除原因。         |

**错误码:**

| 错误码ID | 错误信息                            |
| -------- | ----------------------------------- |
| 1600001  | Internal error.                     |
| 1600002  | Marshalling or unmarshalling error. |
| 1600003  | Failed to connect service.          |
| 1600007  | The notification is not exist.      |

**示例:**

```js
F
fangJinliang1 已提交
421
let hashCode = 'hashCode';
422 423
let reason = notificationSubscribe.RemoveReason.CLICK_REASON_REMOVE;
notificationSubscribe.remove(hashCode, reason).then(() => {
F
fangJinliang1 已提交
424
	console.info("remove success");
425 426 427 428 429 430 431
});
```

## NotificationSubscribe.removeAll

removeAll(bundle: BundleOption, callback: AsyncCallback\<void\>): void

F
fangJinliang1 已提交
432
删除指定应用的所有通知(Callback形式)。
433 434 435 436 437 438 439 440 441

**系统能力**:SystemCapability.Notification.Notification

**系统API**:此接口为系统接口,三方应用不支持调用。

**需要权限**: ohos.permission.NOTIFICATION_CONTROLLER

**参数:**

F
fangJinliang1 已提交
442
| 参数名     | 类型                  | 必填 | 说明                         |
443
| -------- | --------------------- | ---- | ---------------------------- |
F
fangJinliang1 已提交
444 445
| bundle   | [BundleOption](#bundleoption)          | 是   | 指定应用的包信息。                   |
| callback | AsyncCallback\<void\> | 是   | 删除指定应用的所有通知回调函数。 |
446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465

**错误码:**

| 错误码ID | 错误信息                                 |
| -------- | ---------------------------------------- |
| 1600001  | Internal error.                          |
| 1600002  | Marshalling or unmarshalling error.      |
| 1600003  | Failed to connect service.               |
| 17700001 | The specified bundle name was not found. |

**示例:**

```js
function removeAllCallback(err) {
    if (err) {
        console.info("removeAll failed " + JSON.stringify(err));
    } else {
        console.info("removeAll success");
    }
}
F
fangJinliang1 已提交
466
let bundle = {
467
    bundle: "bundleName1",
F
fangJinliang1 已提交
468
};
469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485
NotificationSubscribe.removeAll(bundle, removeAllCallback);
```

## NotificationSubscribe.removeAll

removeAll(callback: AsyncCallback\<void\>): void

删除所有通知(Callback形式)。

**系统能力**:SystemCapability.Notification.Notification

**需要权限**: ohos.permission.NOTIFICATION_CONTROLLER

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

F
fangJinliang1 已提交
486
| 参数名     | 类型                  | 必填 | 说明                 |
487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508
| -------- | --------------------- | ---- | -------------------- |
| callback | AsyncCallback\<void\> | 是   | 删除所有通知回调函数。 |

**错误码:**

| 错误码ID | 错误信息                            |
| -------- | ----------------------------------- |
| 1600001  | Internal error.                     |
| 1600002  | Marshalling or unmarshalling error. |
| 1600003  | Failed to connect service.          |

**示例:**

```js
function removeAllCallback(err) {
    if (err) {
        console.info("removeAll failed " + JSON.stringify(err));
    } else {
        console.info("removeAll success");
    }
}

509
notificationSubscribe.removeAll(removeAllCallback);
510 511 512 513 514 515
```

## NotificationSubscribe.removeAll

removeAll(bundle?: BundleOption): Promise\<void\>

F
fangJinliang1 已提交
516
删除指定应用的所有通知(Promise形式)。
517 518 519 520 521 522 523 524 525

**系统能力**:SystemCapability.Notification.Notification

**需要权限**: ohos.permission.NOTIFICATION_CONTROLLER

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

F
fangJinliang1 已提交
526
| 参数名   | 类型         | 必填 | 说明       |
527
| ------ | ------------ | ---- | ---------- |
F
fangJinliang1 已提交
528
| bundle | [BundleOption](#bundleoption) | 否   | 指定应用的包信息。 |
529 530 531 532 533 534 535 536 537 538 539 540 541

**错误码:**

| 错误码ID | 错误信息                                 |
| -------- | ---------------------------------------- |
| 1600001  | Internal error.                          |
| 1600002  | Marshalling or unmarshalling error.      |
| 1600003  | Failed to connect service.               |
| 17700001 | The specified bundle name was not found. |

**示例:**

```js
F
fangJinliang1 已提交
542
// 不指定应用时,删除所有通知
543
notificationSubscribe.removeAll().then(() => {
F
fangJinliang1 已提交
544
	console.info("removeAll success");
545 546 547 548 549 550 551
});
```

## NotificationSubscribe.removeAll

removeAll(userId: number, callback: AsyncCallback\<void>): void

F
fangJinliang1 已提交
552
删除指定用户下的所有通知(callback形式)。
553 554 555 556 557 558 559 560 561

**系统能力**:SystemCapability.Notification.Notification

**需要权限**: ohos.permission.NOTIFICATION_CONTROLLER

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

F
fangJinliang1 已提交
562
| 参数名   | 类型         | 必填 | 说明       |
563
| ------ | ------------ | ---- | ---------- |
F
fangJinliang1 已提交
564 565
| userId | number | 是   | 用户ID。 |
| callback | AsyncCallback\<void\> | 是   | 删除指定用户所有通知回调函数。 |
566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586

**错误码:**

| 错误码ID | 错误信息                            |
| -------- | ----------------------------------- |
| 1600001  | Internal error.                     |
| 1600002  | Marshalling or unmarshalling error. |
| 1600003  | Failed to connect service.          |
| 1600008  | The user is not exist.              |

**示例:**

```js
function removeAllCallback(err) {
    if (err) {
        console.info("removeAll failed " + JSON.stringify(err));
    } else {
        console.info("removeAll success");
    }
}

F
fangJinliang1 已提交
587
let userId = 1;
588

589
notificationSubscribe.removeAll(userId, removeAllCallback);
590 591 592 593 594 595
```

## Notification.removeAll

removeAll(userId: number): Promise\<void>

F
fangJinliang1 已提交
596
删除指定用户下的所有通知(Promise形式)。
597 598 599 600 601 602 603 604 605

**系统能力**:SystemCapability.Notification.Notification

**需要权限**: ohos.permission.NOTIFICATION_CONTROLLER

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

F
fangJinliang1 已提交
606
| 参数名   | 类型         | 必填 | 说明       |
607
| ------ | ------------ | ---- | ---------- |
F
fangJinliang1 已提交
608
| userId | number | 是   | 用户ID。 |
609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629

**错误码:**

| 错误码ID | 错误信息                            |
| -------- | ----------------------------------- |
| 1600001  | Internal error.                     |
| 1600002  | Marshalling or unmarshalling error. |
| 1600003  | Failed to connect service.          |
| 1600008  | The user is not exist.              |

**示例:**

```js
function removeAllCallback(err) {
    if (err) {
        console.info("removeAll failed " + JSON.stringify(err));
    } else {
        console.info("removeAll success");
    }
}

F
fangJinliang1 已提交
630
let userId = 1;
631

632
notificationSubscribe.removeAll(userId, removeAllCallback);
633 634 635 636
```

## NotificationSubscriber

F
fangJinliang1 已提交
637
作为订阅通知接口[subscribe](#notificationsubscribe)的入参,提供订阅者接收到新通知、取消通知等的回调方法。
638 639 640 641 642 643 644

**系统API**:此接口为系统接口,三方应用不支持调用。

### onConsume

onConsume?: (data: [SubscribeCallbackData](#subscribecallbackdata)) => void

F
fangJinliang1 已提交
645
接收到新通知的回调函数。
646 647 648 649 650 651 652 653 654

**系统能力**:SystemCapability.Notification.Notification

**系统接口**: 此接口为系统接口,三方应用不支持调用。

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| ------------ | ------------------------ | ---- | -------------------------- |
F
fangJinliang1 已提交
655
| data | [SubscribeCallbackData](#subscribecallbackdata) | 是 | 新接收到的通知信息。 |
656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673

**示例:**

```javascript
function subscribeCallback(err) {
    if (err) {
        console.info("subscribe failed " + JSON.stringify(err));
    } else {
        console.info("subscribeCallback");
    }
};

function onConsumeCallback(data) {
    console.info('===> onConsume in test');
    let req = data.request;
    console.info('===> onConsume callback req.id:' + req.id);
};

F
fangJinliang1 已提交
674
let subscriber = {
675 676 677
    onConsume: onConsumeCallback
};

678
notificationSubscribe.subscribe(subscriber, subscribeCallback);
679 680 681 682 683 684
```

### onCancel

onCancel?:(data: [SubscribeCallbackData](#subscribecallbackdata)) => void

F
fangJinliang1 已提交
685
取消通知的回调函数。
686 687 688 689 690 691 692 693 694

**系统能力**:SystemCapability.Notification.Notification

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| ------------ | ------------------------ | ---- | -------------------------- |
F
fangJinliang1 已提交
695
| data | [SubscribeCallbackData](#subscribecallbackdata) | 是 | 需要取消的通知信息。 |
696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713

**示例:**

```javascript
function subscribeCallback(err) {
    if (err) {
        console.info("subscribe failed " + JSON.stringify(err));
    } else {
        console.info("subscribeCallback");
    }
};

function onCancelCallback(data) {
    console.info('===> onCancel in test');
    let req = data.request;
    console.info('===> onCancel callback req.id:' + req.id);
}

F
fangJinliang1 已提交
714
let subscriber = {
715 716 717
    onCancel: onCancelCallback
};

718
notificationSubscribe.subscribe(subscriber, subscribeCallback);
719 720 721 722 723 724
```

### onUpdate

onUpdate?:(data: [NotificationSortingMap](#notificationsortingmap)) => void

F
fangJinliang1 已提交
725
更新通知排序的回调函数。
726 727 728 729 730 731 732 733 734

**系统能力**:SystemCapability.Notification.Notification

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| ------------ | ------------------------ | ---- | -------------------------- |
F
fangJinliang1 已提交
735
| data | [NotificationSortingMap](#notificationsortingmap) | 是 | 最新的通知排序列表。 |
736 737 738 739 740 741 742 743 744 745 746 747

**示例:**

```javascript
function subscribeCallback(err) {
    if (err) {
        console.info("subscribe failed " + JSON.stringify(err));
    } else {
        console.info("subscribeCallback");
    }
};

F
fangJinliang1 已提交
748 749
function onUpdateCallback(map) {
    console.info('===> onUpdateCallback map:' + JSON.stringify(map));
750 751
}

F
fangJinliang1 已提交
752
let subscriber = {
753 754 755
    onUpdate: onUpdateCallback
};

756
notificationSubscribe.subscribe(subscriber, subscribeCallback);
757 758 759 760 761 762
```

### onConnect

onConnect?:() => void

F
fangJinliang1 已提交
763
订阅完成的回调函数。
764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783

**系统能力**:SystemCapability.Notification.Notification

**系统API**: 此接口为系统接口,三方应用不支持调用。

**示例:**

```javascript
function subscribeCallback(err) {
    if (err) {
        console.info("subscribe failed " + JSON.stringify(err));
    } else {
        console.info("subscribeCallback");
    }
};

function onConnectCallback() {
    console.info('===> onConnect in test');
}

F
fangJinliang1 已提交
784
let subscriber = {
785 786 787
    onConnect: onConnectCallback
};

788
notificationSubscribe.subscribe(subscriber, subscribeCallback);
789 790 791 792 793 794
```

### onDisconnect

onDisconnect?:() => void

F
fangJinliang1 已提交
795
取消订阅的回调函数。
796 797 798 799 800 801 802 803 804 805 806 807 808 809 810

**系统能力**:SystemCapability.Notification.Notification

**系统API**: 此接口为系统接口,三方应用不支持调用。

**示例:**

```javascript
function subscribeCallback(err) {
    if (err) {
        console.info("subscribe failed " + JSON.stringify(err));
    } else {
        console.info("subscribeCallback");
    }
};
F
fangJinliang1 已提交
811 812 813 814 815 816 817
function unsubscribeCallback(err) {
    if (err.code) {
        console.info("unsubscribe failed " + JSON.stringify(err));
    } else {
        console.info("unsubscribeCallback");
    }
};
818

F
fangJinliang1 已提交
819 820 821
function onConnectCallback() {
    console.info('===> onConnect in test');
}
822 823 824 825
function onDisconnectCallback() {
    console.info('===> onDisconnect in test');
}

F
fangJinliang1 已提交
826
let subscriber = {
F
fangJinliang1 已提交
827
    onConnect: onConnectCallback,
828 829 830
    onDisconnect: onDisconnectCallback
};

F
fangJinliang1 已提交
831
// 订阅通知后会收到onConnect回调
832
notificationSubscribe.subscribe(subscriber, subscribeCallback);
F
fangJinliang1 已提交
833
// 取消订阅后会收到onDisconnect回调
834
notificationSubscribe.unsubscribe(subscriber, unsubscribeCallback);
835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861
```

### onDestroy

onDestroy?:() => void

服务失联回调函数。

**系统能力**:SystemCapability.Notification.Notification

**系统API**: 此接口为系统接口,三方应用不支持调用。

**示例:**

```javascript
function subscribeCallback(err) {
    if (err) {
        console.info("subscribe failed " + JSON.stringify(err));
    } else {
        console.info("subscribeCallback");
    }
};

function onDestroyCallback() {
    console.info('===> onDestroy in test');
}

F
fangJinliang1 已提交
862
let subscriber = {
863 864 865
    onDestroy: onDestroyCallback
};

866
notificationSubscribe.subscribe(subscriber, subscribeCallback);
867 868 869 870 871 872
```

### onDoNotDisturbDateChange

onDoNotDisturbDateChange?:(mode: notification.[DoNotDisturbDate](js-apis-notificationManager.md#donotdisturbdate)) => void

F
fangJinliang1 已提交
873
免打扰时间选项发生变更时的回调函数。
874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895

**系统能力**:SystemCapability.Notification.Notification

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| ------------ | ------------------------ | ---- | -------------------------- |
| mode | notification.[DoNotDisturbDate](js-apis-notificationManager.md#DoNotDisturbDate) | 是 | 回调返回免打扰时间选项变更。 |

**示例:**

```javascript
function subscribeCallback(err) {
    if (err) {
        console.info("subscribe failed " + JSON.stringify(err));
    } else {
        console.info("subscribeCallback");
    }
};

F
fangJinliang1 已提交
896 897
function onDoNotDisturbDateChangeCallback(mode) {
    console.info('===> onDoNotDisturbDateChange:' + mode);
898 899
}

F
fangJinliang1 已提交
900
let subscriber = {
901 902 903
    onDoNotDisturbDateChange: onDoNotDisturbDateChangeCallback
};

904
notificationSubscribe.subscribe(subscriber, subscribeCallback);
905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940
```


### onEnabledNotificationChanged

onEnabledNotificationChanged?:(callbackData: [EnabledNotificationCallbackData](#enablednotificationcallbackdata)) => void

监听应用通知使能变化。

**系统能力**:SystemCapability.Notification.Notification

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| ------------ | ------------------------ | ---- | -------------------------- |
| callback | AsyncCallback\<[EnabledNotificationCallbackData](#enablednotificationcallbackdata)\> | 是 | 回调返回监听到的应用信息。 |

**示例:**

```javascript
function subscribeCallback(err) {
    if (err) {
        console.info("subscribe failed " + JSON.stringify(err));
    } else {
        console.info("subscribeCallback");
    }
};

function onEnabledNotificationChangedCallback(callbackData) {
    console.info("bundle: ", callbackData.bundle);
    console.info("uid: ", callbackData.uid);
    console.info("enable: ", callbackData.enable);
};

F
fangJinliang1 已提交
941
let subscriber = {
942 943 944
    onEnabledNotificationChanged: onEnabledNotificationChangedCallback
};

945
notificationSubscribe.subscribe(subscriber, subscribeCallback);
946 947 948 949 950 951
```

## BundleOption

**系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.Notification

F
fangJinliang1 已提交
952 953 954 955
| 名称   | 类型   | 可读 | 可写 | 说明   |
| ------ | ------ |---- | --- |  ------ |
| bundle | string | 是  | 是  | 应用的包信息。 |
| uid    | number | 是  | 是  | 用户ID。 |
956 957 958 959 960

## NotificationKey

**系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.Notification

F
fangJinliang1 已提交
961 962 963 964
| 名称  | 类型   | 可读 | 可写 | 说明     |
| ----- | ------ | ---- | --- | -------- |
| id    | number | 是  | 是  | 通知ID。   |
| label | string | 是  | 是  | 通知标签。 |
965 966 967 968 969 970 971

## SubscribeCallbackData

**系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.Notification

**系统API**:此接口为系统接口,三方应用不支持调用。

F
fangJinliang1 已提交
972 973 974 975 976 977 978
| 名称            | 类型                                              | 可读                                            | 可写                                            | 说明     |
| --------------- | ------------------------------------------------- | -------- | -------- | -------- |
| request         | [NotificationRequest](js-apis-notificationManager.md#notificationrequest) | 是 | 否 | 通知内容。 |
| sortingMap      | [NotificationSortingMap](#notificationsortingmap) | 是 | 否 | 排序信息。 |
| reason          | number                                            | 是                                           | 否                                           | 删除原因。 |
| sound           | string                                            | 是                                           | 否                                           | 通知声音。 |
| vibrationValues | Array\<number\>                                   | 是                                  | 否                                  | 通知震动。 |
979 980 981 982 983 984 985 986


## EnabledNotificationCallbackData

**系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.Notification

**系统API**:此接口为系统接口,三方应用不支持调用。

F
fangJinliang1 已提交
987 988 989 990 991
| 名称   | 类型    | 可读  | 可写  | 描述             |
| ------ | ------- | ---------------- | ---------------- | ---------------- |
| bundle | string  | 是 | 否 | 应用的包名。       |
| uid    | number  | 是 | 否 | 应用的uid。        |
| enable | boolean | 是 | 否 | 应用通知使能状态。 |
992 993 994 995 996 997 998 999 1000 1001


## NotificationSorting

提供有关活动通知的排序信息。

**系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.Notification

**系统API**: 此接口为系统接口,三方应用不支持调用。

F
fangJinliang1 已提交
1002 1003 1004 1005 1006
| 名称     | 类型                                  | 可读 | 可写 | 说明         |
| -------- | ------------------------------------- | ---- | --- | ------------ |
| slot     | [NotificationSlot](js-apis-notificationManager.md#notificationslot) | 是  | 否  | 通知通道内容。 |
| hashCode | string                                | 是  | 否  | 通知唯一标识。 |
| ranking  | number                                | 是  | 否  | 通知排序序号。 |
1007 1008 1009 1010 1011 1012 1013 1014 1015 1016


## NotificationSortingMap

提供关于已订阅的所有通知中活动通知的排序信息

**系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.Notification

**系统API**:此接口为系统接口,三方应用不支持调用。

F
fangJinliang1 已提交
1017 1018 1019 1020
| 名称           | 类型                                                         | 可读 | 可写 | 说明             |
| -------------- | ------------------------------------------------------------ | ---- | --- | ---------------- |
| sortings       | {[key: string]: [NotificationSorting](#notificationsorting)} | 是  | 否  | 通知排序信息数组。 |
| sortedHashCode | Array\<string\>                                              | 是  | 否  | 通知唯一标识数组。 |
1021 1022 1023 1024 1025 1026 1027 1028 1029 1030


## NotificationSubscribeInfo

设置订阅所需通知的发布者的信息。

**系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.Notification

**系统API**: 此接口为系统接口,三方应用不支持调用。

F
fangJinliang1 已提交
1031 1032 1033 1034
| 名称        | 类型            | 可读 | 可写 | 说明                            |
| ----------- | --------------- | --- | ---- | ------------------------------- |
| bundleNames | Array\<string\> | 是  | 是  | 指定订阅哪些包名的APP发来的通知。 |
| userId      | number          | 是  | 是  | 指定订阅哪个用户下发来的通知。    |
1035 1036 1037 1038 1039 1040 1041 1042


## NotificationUserInput

保存用户输入的通知消息。

**系统能力**:SystemCapability.Notification.Notification

F
fangJinliang1 已提交
1043 1044 1045
| 名称     | 类型   | 可读 | 可写 | 说明                          |
| -------- | ------ | --- | ---- | ----------------------------- |
| inputKey | string | 是  | 是  | 用户输入时用于标识此输入的key。 |
1046 1047 1048 1049 1050 1051 1052

## RemoveReason

**系统能力**:SystemCapability.Notification.Notification

**系统API**: 此接口为系统接口,三方应用不支持调用。

F
fangJinliang1 已提交
1053
| 名称                 | 值  | 说明                  |
1054 1055 1056
| -------------------- | --- | -------------------- |
| CLICK_REASON_REMOVE  | 1   | 点击通知后删除通知。    |
| CANCEL_REASON_REMOVE | 2   | 用户删除通知。         |