1# 发布文本类型通知
2
3文本类型通知主要应用于发送短信息、提示信息等,支持普通文本类型和多行文本类型。
4
5**表1** 基础类型通知中的内容分类
6
7| 类型                             | 描述          |
8| ------------------------------- | ------------- |
9| NOTIFICATION_CONTENT_BASIC_TEXT | 普通文本类型。 |
10| NOTIFICATION_CONTENT_MULTILINE  | 多行文本类型。 |
11
12## 接口说明
13
14通知发布接口说明详见下表,通知发布的详情可通过入参[NotificationRequest](../reference/apis-notification-kit/js-apis-inner-notification-notificationRequest.md#notificationrequest)来进行指定,可以包括通知内容、通知ID、通知的通道类型和通知发布时间等信息。
15
16| **接口名** | **描述** |
17| -------- | -------- |
18| publish(request: NotificationRequest, callback: AsyncCallback<void>): void | 发布通知。                 |
19
20
21## 开发步骤
22
231. 导入模块。
24
25   ```ts
26   import { notificationManager } from '@kit.NotificationKit';
27   import { BusinessError } from '@kit.BasicServicesKit';
28   import { hilog } from '@kit.PerformanceAnalysisKit';
29
30   const TAG: string = '[PublishOperation]';
31   const DOMAIN_NUMBER: number = 0xFF00;
32   ```
33
342. 构造NotificationRequest对象,并发布通知。
35   - 普通文本类型通知由标题、文本内容和附加信息三个字段组成,其中标题和文本内容是必填字段,大小均需要小于200字节,超出部分会被截断。
36
37      ```ts
38      let notificationRequest: notificationManager.NotificationRequest = {
39        id: 1,
40        content: {
41          notificationContentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT, // 普通文本类型通知
42          normal: {
43            title: 'test_title',
44            text: 'test_text',
45            additionalText: 'test_additionalText',
46          }
47        }
48      };
49      notificationManager.publish(notificationRequest, (err: BusinessError) => {
50        if (err) {
51          hilog.error(DOMAIN_NUMBER, TAG, `Failed to publish notification. Code is ${err.code}, message is ${err.message}`);
52          return;
53        }
54        hilog.info(DOMAIN_NUMBER, TAG, 'Succeeded in publishing notification.');
55      });
56      ```
57
58
59   - 多行文本类型通知继承了普通文本类型的字段,同时新增了多行文本内容、内容概要和通知展开时的标题,其字段均小于200字节,超出部分会被截断。通知默认显示与普通文本相同,展开后,标题显示为展开后标题内容,多行文本内容多行显示。
60
61      ```ts
62      let notificationRequest: notificationManager.NotificationRequest = {
63        id: 3,
64        content: {
65          notificationContentType: notificationManager.ContentType.NOTIFICATION_CONTENT_MULTILINE, // 多行文本类型通知
66          multiLine: {
67            title: 'test_title',
68            text: 'test_text',
69            briefText: 'test_briefText',
70            longTitle: 'test_longTitle',
71            lines: ['line_01', 'line_02', 'line_03', 'line_04'],
72          }
73        }
74      };
75      // 发布通知
76      notificationManager.publish(notificationRequest, (err: BusinessError) => {
77        if (err) {
78          hilog.error(DOMAIN_NUMBER, TAG, `Failed to publish notification. Code is ${err.code}, message is ${err.message}`);
79          return;
80        }
81        hilog.info(DOMAIN_NUMBER, TAG, 'Succeeded in publishing notification.');
82      });
83      ```