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