1# 发布进度条类型通知
2
3
4进度条通知也是常见的通知类型,主要应用于文件下载、事务处理进度显示。当前系统提供了进度条模板,发布通知应用设置好进度条模板的属性值,如模板名、模板数据,通过通知子系统发送到通知栏显示。
5
6目前系统模板仅支持进度条模板,通知模板[NotificationTemplate](../reference/apis-notification-kit/js-apis-inner-notification-notificationTemplate.md)中的data参数为用户自定义数据,用于显示与模块相关的数据。
7
8## 接口说明
9
10[`isSupportTemplate()`](../reference/apis-notification-kit/js-apis-notificationManager.md#notificationmanagerissupporttemplate)是查询模板是否支持接口,目前仅支持进度条模板。
11
12| **接口名** | **描述** |
13| -------- | -------- |
14| isSupportTemplate(templateName: string): Promise\<boolean\> | 查询模板是否存在。 |
15
16
17## 开发步骤
18
191. 导入模块。
20
21   ```ts
22   import { notificationManager } from '@kit.NotificationKit';
23   import { BusinessError } from '@kit.BasicServicesKit';
24   import { hilog } from '@kit.PerformanceAnalysisKit';
25
26   const TAG: string = '[PublishOperation]';
27   const DOMAIN_NUMBER: number = 0xFF00;
28   ```
29
302. 查询系统是否支持进度条模板,查询结果为支持downloadTemplate模板类通知。
31
32   ```ts
33   notificationManager.isSupportTemplate('downloadTemplate').then((data:boolean) => {
34     hilog.info(DOMAIN_NUMBER, TAG, 'Succeeded in supporting download template notification.');
35     let isSupportTpl: boolean = data; // isSupportTpl的值为true表示支持downloadTemplate模板类通知,false表示不支持
36   }).catch((err: BusinessError) => {
37     hilog.error(DOMAIN_NUMBER, TAG, `Failed to support download template notification. Code is ${err.code}, message is ${err.message}`);
38   });
39   ```
40
41   > **说明:**
42   > 查询系统支持进度条模板后,再进行后续的步骤操作。
43
443. 构造进度条模板对象,并发布通知。
45
46   ```ts
47   let notificationRequest: notificationManager.NotificationRequest = {
48     id: 5,
49     content: {
50       notificationContentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,
51       normal: {
52         title: 'test_title',
53         text: 'test_text',
54         additionalText: 'test_additionalText'
55       }
56     },
57     // 构造进度条模板,name字段当前需要固定配置为downloadTemplate
58     template: {
59       name: 'downloadTemplate',
60       data: { title: 'File Title', fileName: 'music.mp4', progressValue: 45 }
61     }
62   }
63
64   // 发布通知
65   notificationManager.publish(notificationRequest, (err: BusinessError) => {
66     if (err) {
67       hilog.error(DOMAIN_NUMBER, TAG, `Failed to publish notification. Code is ${err.code}, message is ${err.message}`);
68       return;
69     }
70     hilog.info(DOMAIN_NUMBER, TAG, 'Succeeded in publishing notification.');
71   });
72   ```
73