1# Introduction to Notification Kit
2
3With Notification Kit, you can publish local notifications from your application and push them to users on the client. Local notifications can be displayed by ringtones, vibrations, banners, lock screen, screen off, Always On Display (AOD), and notification panel based on the notification type and publishing scenario.
4
5## When to Use
6When application is running in the foreground, you can use the Notification Kit to publish notifications to users.<!--RP1--><!--RP1End-->
7You can use the local notification capability in multiple scenarios. For example, synchronize the upload and download progress of the user, send instant customer service payment notifications, and update the number of steps.
8
9## Capability Scope
10The Notification Kit supports the following capabilities:
11 - Publishes notifications in the form of text or progress bar.
12 - Carries or updates the application notification badge.
13 - Cancels one or all published notifications.
14 - Queries the list of published notifications.
15 - Queries the status of the notification function of an application.
16 - The capability of notifying users is disabled by default. You can open the authorization dialog box to request users to authorize the publishing of notifications.
17
18 ![notification_introduction](figures/notification_introduction.png)
19
20## Service Flow
21 ![notification_principle](figures/notification_principle.png)
22
23The main service flow of using the Notification Kit is as follows:
24
251. Request notification authorization.
26
272. The application publishes a notification to the notification service.
28
293. The notification is displayed in the notification center.
30
31
32## Notification Style
33
34> **NOTE**
35>
36> The display effect depends on the device capability and notification center UI style.
37
38Common notification styles in the Notification Kit are as follows.
39| Type| Notification Style| Description|
40| ---- | --------| ------- |
41| [Text](./text-notification.md)          | ![text_notification](figures/text_notification.png)   | A maximum of three lines can be displayed in the notification text. Excess content is truncated by an ellipsis (...).|
42| [Multi-line text](./text-notification.md)      | ![multiline_notification](figures/multiline_notification.png)   | A maximum of three lines of content can be displayed. Excess content of each line is truncated by an ellipsis (...).|
43| [Notification badge](./notification-badge.md)     | ![notification_badge](figures/notification_badge.png)   | Displayed as a number in the upper right corner.|
44| [Progress bar](./progress-bar-notification.md)| ![progress_notification](figures/progress_notification.png)    | Progress notification.|
45
46## Constraints
47- There is a limit on the number of notifications per application in the system windows. The current limit is 24.
48- The notification cannot exceed 200 KB (due to cross-process serialization).
49- The total number of notifications published by all system applications cannot exceed 10 per second, and that of notifications updated cannot exceed 20 per second.
50
51## Relationship with Related Kits
52- Notifications created by Notification Kit are displayed in the notification panel in real time. To publish scheduled notifications when your application is in the background or is not running, you can use [BackGroundTask Kit](../reference/apis-backgroundtasks-kit/js-apis-backgroundTaskManager.md). For example, you can use it to publish a flash sale reminder for your shopping application. Currently, the notification reminder feature is available for countdown, calendar, and alarm events.
53- You can choose [Ability Kit](../reference/apis-ability-kit/js-apis-app-ability-wantAgent.md#wantagentgetwantagent) to set the behavior intent after a user opens a notification.<!--RP2-->
54<!--RP2End-->
55