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| cancel(id: number, label: string, callback: AsyncCallback<void>): void | 取消指定的通知。 | 20| cancelAll(callback: AsyncCallback<void>): void | 取消所有该应用发布的通知。 | 21 22 23## 开发步骤 24 251. 导入模块。 26 27 ```ts 28 import { notificationManager } from '@kit.NotificationKit'; 29 import { BusinessError } from '@kit.BasicServicesKit'; 30 import { hilog } from '@kit.PerformanceAnalysisKit'; 31 32 const TAG: string = '[PublishOperation]'; 33 const DOMAIN_NUMBER: number = 0xFF00; 34 ``` 35 362. 构造NotificationRequest对象,并发布通知。 37 - 普通文本类型通知由标题、文本内容和附加信息三个字段组成,其中标题和文本内容是必填字段,大小均需要小于200字节,超出部分会被截断。 38 39 ```ts 40 let notificationRequest: notificationManager.NotificationRequest = { 41 id: 1, 42 content: { 43 notificationContentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT, // 普通文本类型通知 44 normal: { 45 title: 'test_title', 46 text: 'test_text', 47 additionalText: 'test_additionalText', 48 } 49 } 50 }; 51 notificationManager.publish(notificationRequest, (err: BusinessError) => { 52 if (err) { 53 hilog.error(DOMAIN_NUMBER, TAG, `Failed to publish notification. Code is ${err.code}, message is ${err.message}`); 54 return; 55 } 56 hilog.info(DOMAIN_NUMBER, TAG, 'Succeeded in publishing notification.'); 57 }); 58 ``` 59 60 61 - 多行文本类型通知继承了普通文本类型的字段,同时新增了多行文本内容、内容概要和通知展开时的标题,其字段均小于200字节,超出部分会被截断。通知默认显示与普通文本相同,展开后,标题显示为展开后标题内容,多行文本内容多行显示。 62 63 ```ts 64 let notificationRequest: notificationManager.NotificationRequest = { 65 id: 3, 66 content: { 67 notificationContentType: notificationManager.ContentType.NOTIFICATION_CONTENT_MULTILINE, // 多行文本类型通知 68 multiLine: { 69 title: 'test_title', 70 text: 'test_text', 71 briefText: 'test_briefText', 72 longTitle: 'test_longTitle', 73 lines: ['line_01', 'line_02', 'line_03', 'line_04'], 74 } 75 } 76 }; 77 // 发布通知 78 notificationManager.publish(notificationRequest, (err: BusinessError) => { 79 if (err) { 80 hilog.error(DOMAIN_NUMBER, TAG, `Failed to publish notification. Code is ${err.code}, message is ${err.message}`); 81 return; 82 } 83 hilog.info(DOMAIN_NUMBER, TAG, 'Succeeded in publishing notification.'); 84 }); 85 ``` 863. 删除通知。 87 88 ```ts 89 notificationManager.cancel(1, (err: BusinessError) => { 90 if (err) { 91 hilog.error(DOMAIN_NUMBER, TAG, `Failed to cancel notification. Code is ${err.code}, message is ${err.message}`); 92 return; 93 } 94 hilog.info(DOMAIN_NUMBER, TAG, 'Succeeded in cancel notification.'); 95 }); 96 ```