• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 更新通知
2
3更新已发布的通知。主要用于上传下载进度更新、IM会话消息更新等场景。
4
5## 接口说明
6
7通知发布更新接口说明详见下表,通知更新可通过入参[NotificationRequest](../reference/apis-notification-kit/js-apis-inner-notification-notificationRequest.md#notificationrequest-1)携带updateOnly字段来指定,不指定该字段默认为false。
8
9- 当updateOnly为true时,若相同ID通知存在,则更新通知;若相同ID通知不存在,则更新失败,不创建新的通知。
10
11- 当updateOnly为false时,若相同ID通知存在,则更新通知;若相同ID通知不存在,则创建通知。
12
13| **接口名** | **描述** |
14| -------- | -------- |
15| [publish](../reference/apis-notification-kit/js-apis-notificationManager.md#notificationmanagerpublish)(request: NotificationRequest, callback: AsyncCallback<void>): void | 发布更新通知。                 |
16
17
18## 开发步骤
19
20下面以进度条通知发布更新为例。
21
221. 导入模块。
23
24   ```ts
25   import { notificationManager } from '@kit.NotificationKit';
26   import { BusinessError } from '@kit.BasicServicesKit';
27   import { hilog } from '@kit.PerformanceAnalysisKit';
28
29   const TAG: string = '[PublishOperation]';
30   const DOMAIN_NUMBER: number = 0xFF00;
31   ```
32
332. 发布进度条通知。
34
35   ```ts
36   let notificationRequest: notificationManager.NotificationRequest = {
37     id: 5,
38     content: {
39       notificationContentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,
40       normal: {
41         title: 'test_title',
42         text: 'test_text',
43         additionalText: 'test_additionalText'
44       }
45     },
46     // 构造进度条模板,name字段当前需要固定配置为downloadTemplate
47     template: {
48       name: 'downloadTemplate',
49       data: { title: 'File Title', fileName: 'music.mp4', progressValue: 50 }
50     }
51   }
52
53   // 发布通知
54   notificationManager.publish(notificationRequest, (err: BusinessError) => {
55     if (err) {
56       hilog.error(DOMAIN_NUMBER, TAG, `Failed to publish notification. Code is ${err.code}, message is ${err.message}`);
57       return;
58     }
59     hilog.info(DOMAIN_NUMBER, TAG, 'Succeeded in publishing notification.');
60   });
61   ```
62
633. 通过[NotificationRequest](../reference/apis-notification-kit/js-apis-inner-notification-notificationRequest.md#notificationrequest-1)接口携带updateOnly字段更新进度条通知。
64
65   ```ts
66   let notificationRequest: notificationManager.NotificationRequest = {
67     id: 5,
68     updateOnly: true,
69     content: {
70       notificationContentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,
71       normal: {
72         title: 'test_title',
73         text: 'test_text',
74         additionalText: 'test_additionalText'
75       }
76     },
77     // 构造进度条模板,name字段当前需要固定配置为downloadTemplate
78     template: {
79       name: 'downloadTemplate',
80       data: { title: 'File Title', fileName: 'music.mp4', progressValue: 99 }
81     }
82   }
83
84   // 更新发布通知
85   notificationManager.publish(notificationRequest, (err: BusinessError) => {
86     if (err) {
87       hilog.error(DOMAIN_NUMBER, TAG, `Failed to update notification. Code is ${err.code}, message is ${err.message}`);
88       return;
89     }
90     hilog.info(DOMAIN_NUMBER, TAG, 'Succeeded in updating notification.');
91   });
92   ```