• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 发布基础类型通知
2
3
4基础类型通知主要应用于发送短信息、提示信息、广告推送等,支持普通文本类型、长文本类型、多行文本类型和图片类型。
5
6**表1** 基础类型通知中的内容分类
7
8| 类型 | 描述 |
9| -------- | -------- |
10| NOTIFICATION_CONTENT_BASIC_TEXT | 普通文本类型。 |
11| NOTIFICATION_CONTENT_LONG_TEXT | 长文本类型。 |
12| NOTIFICATION_CONTENT_MULTILINE | 多行文本类型。 |
13| NOTIFICATION_CONTENT_PICTURE | 图片类型。 |
14
15目前,系统仅支持通知栏订阅通知,将通知显示在通知栏中。基本类型通知的效果示意如下图所示。
16
17**图1** 基础类型通知呈现效果示意图
18![zh-cn_image_0000001466462305](figures/zh-cn_image_0000001466462305.png)
19
20
21## 接口说明
22
23通知发布接口如下表所示,不同发布类型通知由[NotificationRequest](../reference/apis/js-apis-inner-notification-notificationRequest.md#notificationrequest)的字段携带不同的信息。
24
25| **接口名** | **描述** |
26| -------- | -------- |
27| publish(request: NotificationRequest, callback: AsyncCallback<void>): void | 发布通知。                 |
28| cancel(id: number, label: string, callback: AsyncCallback<void>): void | 取消指定的通知。           |
29| cancelAll(callback: AsyncCallback<void>): void; | 取消所有该应用发布的通知。 |
30
31
32## 开发步骤
33
341. [使能通知开关](notification-enable.md),获得用户授权后,才能使用通知功能。
35
362. 导入模块。
37
38   ```ts
39   import notificationManager from '@ohos.notificationManager';
40   ```
41
423. 构造NotificationRequest对象,并发布通知。
43   - 普通文本类型通知由标题、文本内容和附加信息三个字段组成,其中标题和文本内容是必填字段,大小均需要小于200字节。
44
45      ```ts
46      let notificationRequest: notificationManager.NotificationRequest = {
47        id: 1,
48        content: {
49          contentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT, // 普通文本类型通知
50          normal: {
51            title: 'test_title',
52            text: 'test_text',
53            additionalText: 'test_additionalText',
54          }
55        }
56      };
57
58      notificationManager.publish(notificationRequest, (err) => {
59        if (err) {
60          console.error(`Failed to publish notification. Code is ${err.code}, message is ${err.message}`);
61          return;
62        }
63        console.info('Succeeded in publishing notification.');
64      });
65      ```
66
67      运行效果如下图所示。
68     ![zh-cn_image_0000001466782033](figures/zh-cn_image_0000001466782033.png)
69   - 长文本类型通知继承了普通文本类型的字段,同时新增了长文本内容、内容概要和通知展开时的标题,其中长文本内容不超过1024字节,其他字段小于200字节。通知默认显示与普通文本相同,展开后,标题显示为展开后标题内容,内容为长文本内容。
70
71      ```ts
72      let notificationRequest: notificationManager.NotificationRequest = {
73        id: 1,
74        content: {
75          contentType: notificationManager.ContentType.NOTIFICATION_CONTENT_LONG_TEXT, // 长文本类型通知
76          longText: {
77            title: 'test_title',
78            text: 'test_text',
79            additionalText: 'test_additionalText',
80            longText: 'test_longText',
81            briefText: 'test_briefText',
82            expandedTitle: 'test_expandedTitle',
83          }
84        }
85      };
86
87      // 发布通知
88      notificationManager.publish(notificationRequest, (err) => {
89        if (err) {
90          console.error(`Failed to publish notification. Code is ${err.code}, message is ${err.message}`);
91          return;
92        }
93        console.info('Succeeded in publishing notification.');
94      });
95      ```
96
97      运行效果如下图所示。
98     ![zh-cn_image_0000001416745530](figures/zh-cn_image_0000001416745530.png)
99   - 多行文本类型通知继承了普通文本类型的字段,同时新增了多行文本内容、内容概要和通知展开时的标题,其字段均小于200字节。通知默认显示与普通文本相同,展开后,标题显示为展开后标题内容,多行文本内容多行显示。
100
101      ```ts
102      let notificationRequest: notificationManager.NotificationRequest = {
103        id: 1,
104        content: {
105          contentType: notificationManager.ContentType.NOTIFICATION_CONTENT_MULTILINE, // 多行文本类型通知
106          multiLine: {
107            title: 'test_title',
108            text: 'test_text',
109            briefText: 'test_briefText',
110            longTitle: 'test_longTitle',
111            lines: ['line_01', 'line_02', 'line_03', 'line_04'],
112          }
113        }
114      };
115
116      // 发布通知
117      notificationManager.publish(notificationRequest, (err) => {
118        if (err) {
119          console.error(`Failed to publish notification. Code is ${err.code}, message is ${err.message}`);
120          return;
121        }
122        console.info('Succeeded in publishing notification.');
123      });
124      ```
125
126      运行效果如下图所示。
127     ![zh-cn_image_0000001417062446](figures/zh-cn_image_0000001417062446.png)
128   - 图片类型通知继承了普通文本类型的字段,同时新增了图片内容、内容概要和通知展开时的标题,图片内容为[PixelMap](../reference/apis/js-apis-image.md#pixelmap7)类型对象,其大小不能超过2M。
129
130      ```ts
131      let imagePixelMap: PixelMap = undefined; // 需要获取图片PixelMap信息
132      let notificationRequest: notificationManager.NotificationRequest = {
133        id: 1,
134        content: {
135          contentType: notificationManager.ContentType.NOTIFICATION_CONTENT_PICTURE,
136          picture: {
137            title: 'test_title',
138            text: 'test_text',
139            additionalText: 'test_additionalText',
140            briefText: 'test_briefText',
141            expandedTitle: 'test_expandedTitle',
142            picture: imagePixelMap
143          }
144        }
145      };
146
147      // 发布通知
148      notificationManager.publish(notificationRequest, (err) => {
149        if (err) {
150          console.error(`Failed to publish notification. Code is ${err.code}, message is ${err.message}`);
151          return;
152        }
153        console.info('Succeeded in publishing notification.');
154      });
155      ```
156
157      运行效果如下图所示。
158     ![zh-cn_image_0000001466582045](figures/zh-cn_image_0000001466582045.png)
159