• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 发布进度条类型通知
2
3
4进度条通知也是常见的通知类型,主要应用于文件下载、事务处理进度显示。OpenHarmony提供了进度条模板,发布通知应用设置好进度条模板的属性值,如模板名、模板数据,通过通知子系统发送到通知栏显示。
5
6目前系统模板仅支持进度条模板,通知模板[NotificationTemplate](../reference/apis/js-apis-inner-notification-notificationTemplate.md)中的data参数为用户自定义数据,用于显示与模块相关的数据,效果示意如下图所示。
7
8**图1** 进度条通知效果示意图
9![zh-cn_image_0000001416903138](figures/zh-cn_image_0000001416903138.png)
10
11
12## 接口说明
13
14[`isSupportTemplate()`](../reference/apis/js-apis-notificationManager.md#notificationmanagerissupporttemplate)是查询模板是否支持接口,目前仅支持进度条模板。
15
16| **接口名** | **描述** |
17| -------- | -------- |
18| isSupportTemplate(templateName: string, callback: AsyncCallback<boolean>): void | 查询模板是否存在。 |
19
20
21## 开发步骤
22
231. [使能通知开关](notification-enable.md),获得用户授权后,才能使用通知功能。
24
252. 导入模块。
26
27   ```ts
28   import notificationManager from '@ohos.notificationManager';
29   ```
30
313. 查询系统是否支持进度条模板,查询结果为支持downloadTemplate模板类通知。
32
33   ```ts
34   notificationManager.isSupportTemplate('downloadTemplate').then((data) => {
35     console.info(`[ANS] isSupportTemplate success`);
36     console.info('Succeeded in supporting download template notification.');
37     let isSupportTpl: boolean = data; // isSupportTpl的值为true表示支持支持downloadTemplate模板类通知,false表示不支持
38     // ...
39   }).catch((err) => {
40     console.error(`Failed to support download template notification. Code is ${err.code}, message is ${err.message}`);
41   });
42   ```
43
44   > **说明:**
45   > 查询系统支持进度条模板后,再进行后续的步骤操作。
46
474. 构造进度条模板对象,并发布通知。
48
49   ```ts
50   let notificationRequest: notificationManager.NotificationRequest = {
51     id: 1,
52     content: {
53       contentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,
54       normal: {
55         title: 'test_title',
56         text: 'test_text',
57         additionalText: 'test_additionalText'
58       }
59     },
60     // 构造进度条模板,name字段当前需要固定配置为downloadTemplate
61     template: {
62       name: 'downloadTemplate',
63       data: { title: 'File Title', fileName: 'music.mp4', progressValue: 45 }
64     }
65   }
66
67   // 发布通知
68   notificationManager.publish(notificationRequest, (err) => {
69     if (err) {
70       console.error(`Failed to publish notification. Code is ${err.code}, message is ${err.message}`);
71       return;
72     }
73     console.info('Succeeded in publishing notification.');
74   });
75   ```
76