• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 后台代理提醒
2
3本模块提供后台代理提醒的能力。
4
5开发应用时,开发者可以调用后台提醒发布的接口创建定时提醒,包括倒计时、日历、闹钟三种提醒类型。使用后台代理提醒能力后,应用可以被冻结或退出,计时和弹出提醒的功能将被后台系统服务代理。
6
7> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
8> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
9
10
11## 导入模块
12
13```
14import reminderAgent from'@ohos.reminderAgent';
15```
16
17
18## reminderAgent.publishReminder
19
20publishReminder(reminderReq: ReminderRequest, callback: AsyncCallback<number>): void
21
22发布一个后台代理提醒,使用callback方式实现异步调用,该方法需要申请通知弹窗[Notification.requestEnableNotification](js-apis-notification.md#notificationrequestenablenotification8)后才能调用。
23
24**需要权限**: ohos.permission.PUBLISH_AGENT_REMINDER
25
26**系统能力**: SystemCapability.Notification.ReminderAgent
27
28**参数**:
29
30  | 参数名 | 类型 | 必填 | 说明 |
31  | -------- | -------- | -------- | -------- |
32  | reminderReq | [ReminderRequest](#reminderrequest) | 是 | 需要发布的提醒实例。 |
33  | callback | AsyncCallback<number> | 是 | 异步回调,返回当前发布的提醒的reminderId。 |
34
35**示例**:
36  ```
37  export default {
38      data: {
39          timer: {
40              reminderType: reminderAgent.ReminderType.REMINDER_TYPE_TIMER,
41              triggerTimeInSeconds: 3
42          }
43      },
44      startTimer() {
45          reminderAgent.publishReminder(timer, (err, reminderId) => {    console.log("reminderId = " + reminderId);
46          });
47      }
48  }
49  ```
50
51
52## reminderAgent.publishReminder
53
54publishReminder(reminderReq: ReminderRequest): Promise<number>
55
56发布一个后台代理提醒,使用Promise方式实现异步调用,该方法需要申请通知弹窗[Notification.requestEnableNotification](js-apis-notification.md#notificationrequestenablenotification8)后才能调用。
57
58**系统能力**: SystemCapability.Notification.ReminderAgent
59
60**参数**:
61  | 参数名 | 类型 | 必填 | 说明 |
62  | -------- | -------- | -------- | -------- |
63  | reminderReq | [ReminderRequest](#reminderrequest) | 是 | 需要发布的提醒实例。 |
64
65**返回值**:
66  | 类型 | 说明 |
67  | -------- | -------- |
68  | Promise<number> | 返回提醒的reminderId。 |
69
70**示例**:
71  ```
72  export default {
73      data:
74          {timer: {
75              reminderType: reminderAgent.ReminderType.REMINDER_TYPE_TIMER,
76              triggerTimeInSeconds: 3
77          }
78      },
79      startTimer() {
80          reminderAgent.publishReminder(this.timer).then((reminderId) => {
81              console.log("reminderId = " + reminderId);
82          });
83      }
84  }
85  ```
86
87
88## reminderAgent.cancelReminder
89
90cancelReminder(reminderId: number, callback: AsyncCallback<void>): void
91
92取消指定id的提醒,使用callback方式实现异步调用。
93
94**系统能力**: SystemCapability.Notification.ReminderAgent
95
96**参数**:
97
98| 参数名 | 类型 | 必填 | 说明 |
99| -------- | -------- | -------- | -------- |
100| reminderId | number | 是 | 目标reminder的id号。 |
101| callback | AsyncCallback<void> | 是 | 异步回调。 |
102
103**示例**:
104
105```
106export default {
107    cancel() {
108        reminderAgent.cancelReminder(1, (err, data) => {
109            console.log("do next");
110        });
111    }
112}
113```
114
115
116## reminderAgent.cancelReminder
117
118cancelReminder(reminderId: number): Promise<void>
119
120取消指定id的提醒,使用Promise方式实现异步调用。
121
122**系统能力**: SystemCapability.Notification.ReminderAgent
123
124**参数**:
125
126| 参数名 | 类型 | 必填 | 说明 |
127| -------- | -------- | -------- | -------- |
128| reminderId | number | 是 | 目标reminder的id号。 |
129
130**返回值**:
131
132| 类型 | 说明 |
133| -------- | -------- |
134| Promise<void> | Promise类型异步回调。 |
135
136**示例**:
137
138```
139export default {
140    cancel() {
141        reminderAgent.cancelReminder(1).then(() => {
142            console.log("do next");
143        });
144    }
145}
146```
147
148
149## reminderAgent.getValidReminders
150
151getValidReminders(callback: AsyncCallback<Array<ReminderRequest>>): void
152
153获取当前应用已设置的所有有效(未过期)的提醒,使用callback方式实现异步调用。
154
155**系统能力**: SystemCapability.Notification.ReminderAgent
156
157**参数**:
158
159| 参数名 | 类型 | 必填 | 说明 |
160| -------- | -------- | -------- | -------- |
161| callback | AsyncCallback<Array<[ReminderRequest](#reminderrequest)>> | 是 | 异步回调,返回当前应用已设置的所有有效(未过期)的提醒。 |
162
163**示例**:
164
165```
166reminderAgent.getValidReminders((err, reminders) => {
167    for (let i = 0; i < reminders.length; i++) {
168        console.log("getValidReminders = " + reminders[i]);
169        console.log("getValidReminders, reminderType = " + reminders[i].reminderType);
170        for (let j = 0; j < reminders[i].actionButton.length; j++) {
171            console.log("getValidReminders, actionButton.title = " + reminders[i].actionButton[j].title);
172            console.log("getValidReminders, actionButton.type = " + reminders[i].actionButton[j].type);
173        }
174        console.log("getValidReminders, wantAgent.pkgName = " + reminders[i].wantAgent.pkgName);
175        console.log("getValidReminders, wantAgent.abilityName = " + reminders[i].wantAgent.abilityName);
176        console.log("getValidReminders, maxScreenWantAgent.pkgName = " + reminders[i].maxScreenWantAgent.pkgName);
177        console.log("getValidReminders, maxScreenWantAgent.abilityName = " + reminders[i].maxScreenWantAgent.abilityName);
178        console.log("getValidReminders, ringDuration = " + reminders[i].ringDuration);
179        console.log("getValidReminders, snoozeTimes = " + reminders[i].snoozeTimes);
180        console.log("getValidReminders, timeInterval = " + reminders[i].timeInterval);
181        console.log("getValidReminders, title = " + reminders[i].title);
182        console.log("getValidReminders, content = " + reminders[i].content);
183        console.log("getValidReminders, expiredContent = " + reminders[i].expiredContent);
184        console.log("getValidReminders, snoozeContent = " + reminders[i].snoozeContent);
185        console.log("getValidReminders, notificationId = " + reminders[i].notificationId);
186        console.log("getValidReminders, slotType = " + reminders[i].slotType);
187    }
188})
189```
190
191
192## reminderAgent.getValidReminders
193
194getValidReminders(): Promise&lt;Array&lt;ReminderRequest&gt;&gt;
195
196获取当前应用已设置的所有有效(未过期)的提醒,使用Promise方式实现异步调用。
197
198**系统能力**: SystemCapability.Notification.ReminderAgent
199
200**返回值**:
201
202| 类型 | 说明 |
203| -------- | -------- |
204| Promise&lt;Array&lt;[ReminderRequest](#reminderrequest)&gt;&gt; | 返回当前应用已设置的所有有效(未过期)的提醒。 |
205
206**示例**:
207
208```
209reminderAgent.getValidReminders().then((reminders) => {
210    for (let i = 0; i < reminders.length; i++) {
211        console.log("getValidReminders = " + reminders[i]);
212        console.log("getValidReminders, reminderType = " + reminders[i].reminderType);
213        for (let j = 0; j < reminders[i].actionButton.length; j++) {
214            console.log("getValidReminders, actionButton.title = " + reminders[i].actionButton[j].title);
215            console.log("getValidReminders, actionButton.type = " + reminders[i].actionButton[j].type);
216        }
217        console.log("getValidReminders, wantAgent.pkgName = " + reminders[i].wantAgent.pkgName);
218        console.log("getValidReminders, wantAgent.abilityName = " + reminders[i].wantAgent.abilityName);
219        console.log("getValidReminders, maxScreenWantAgent.pkgName = " + reminders[i].maxScreenWantAgent.pkgName);
220        console.log("getValidReminders, maxScreenWantAgent.abilityName = " + reminders[i].maxScreenWantAgent.abilityName);
221        console.log("getValidReminders, ringDuration = " + reminders[i].ringDuration);
222        console.log("getValidReminders, snoozeTimes = " + reminders[i].snoozeTimes);
223        console.log("getValidReminders, timeInterval = " + reminders[i].timeInterval);
224        console.log("getValidReminders, title = " + reminders[i].title);
225        console.log("getValidReminders, content = " + reminders[i].content);
226        console.log("getValidReminders, expiredContent = " + reminders[i].expiredContent);
227        console.log("getValidReminders, snoozeContent = " + reminders[i].snoozeContent);
228        console.log("getValidReminders, notificationId = " + reminders[i].notificationId);
229        console.log("getValidReminders, slotType = " + reminders[i].slotType);
230    }
231})
232```
233
234
235## reminderAgent.cancelAllReminders
236
237cancelAllReminders(callback: AsyncCallback&lt;void&gt;): void
238
239取消当前应用所有的提醒,使用callback方式实现异步调用。
240
241**系统能力**: SystemCapability.Notification.ReminderAgent
242
243**参数**:
244
245| 参数名 | 类型 | 必填 | 说明 |
246| -------- | -------- | -------- | -------- |
247| callback | AsyncCallback&lt;void&gt; | 是 | 异步回调。 |
248
249**示例**:
250
251```
252reminderAgent.cancelAllReminders((err, data) =>{
253    console.log("do next")})
254```
255
256
257## reminderAgent.cancelAllReminders
258
259cancelAllReminders(): Promise&lt;void&gt;
260
261取消当前应用所有的提醒,使用Promise方式实现异步调用。
262
263**系统能力**: SystemCapability.Notification.ReminderAgent
264
265**返回值**:
266
267| 类型 | 说明 |
268| -------- | -------- |
269| Promise&lt;void&gt; | Promise类型异步回调。 |
270
271**示例**:
272
273```
274reminderAgent.cancelAllReminders().then(() => {
275    console.log("do next")})
276```
277
278
279## reminderAgent.addNotificationSlot
280
281addNotificationSlot(slot: NotificationSlot, callback: AsyncCallback&lt;void&gt;): void
282
283添加一个NotificationSlot,使用callback方式实现异步调用。
284
285**系统能力**: SystemCapability.Notification.ReminderAgent
286
287**参数**:
288
289| 参数名 | 类型 | 必填 | 说明 |
290| -------- | -------- | -------- | -------- |
291| slot | [NotificationSlot](js-apis-notification.md#notificationslot) | 是 | notification&nbsp;slot实例。 |
292| callback | AsyncCallback&lt;void&gt; | 是 | 异步回调。 |
293
294**示例**:
295
296```
297export default {    data: {        mySlot: {
298            type: 3,
299            sound: "/sdcard/music2.mp3"
300        }    },
301    addSlot() {
302        reminderAgent.addNotificationSlot(this.mySlot, (err, data) => {
303            console.log("do next");
304        });
305    }
306}
307```
308
309
310## reminderAgent.addNotificationSlot
311
312addNotificationSlot(slot: NotificationSlot): Promise&lt;void&gt;
313
314添加一个NotificationSlot,使用Promise方式实现异步调用。
315
316**系统能力**: SystemCapability.Notification.ReminderAgent
317
318**参数**:
319
320| 参数名 | 类型 | 必填 | 说明 |
321| -------- | -------- | -------- | -------- |
322| slot | [NotificationSlot](js-apis-notification.md#notificationslot) | 是 | notification&nbsp;slot实例。 |
323
324**返回值**:
325
326| 类型 | 说明 |
327| -------- | -------- |
328| Promise&lt;void&gt; | Promise类型异步回调。 |
329
330**示例**:
331
332```
333export default {    data: {        mySlot: {
334            type: 3,
335            sound: "/sdcard/music2.mp3"
336        }    },
337    addSlot() {
338        reminderAgent.addNotificationSlot(this.mySlot).then(() => {
339   console.log("do next");
340        });
341    }
342}
343```
344
345
346## reminderAgent.removeNotificationSlot
347
348removeNotificationSlot(slotType: notification.SlotType, callback: AsyncCallback&lt;void&gt;): void
349
350删除目标NotificationSlot,使用callback方式实现异步调用。
351
352**系统能力**: SystemCapability.Notification.ReminderAgent
353
354**参数**:
355
356| 参数名 | 类型 | 必填 | 说明 |
357| -------- | -------- | -------- | -------- |
358| slotType | [notification.SlotType](js-apis-notification.md#slottype) | 是 | 目标notification&nbsp;slot的类型。 |
359| callback | AsyncCallback&lt;void&gt; | 是 | 异步回调。 |
360
361**示例**:
362
363```
364export default {
365    removeSlot() {reminderAgent.removeNotificationSlot(notification.SlotType.CONTENT_INFORMATION, (err, data) => {
366            console.log("do next");
367});
368    }
369}
370```
371
372
373## reminderAgent.removeNotificationSlot
374
375removeNotificationSlot(slotType: notification.SlotType): Promise&lt;void&gt;
376
377删除目标NotificationSlot,使用Promise方式实现异步调用。
378
379**系统能力**: SystemCapability.Notification.ReminderAgent
380
381**参数**:
382
383| 参数名 | 类型 | 必填 | 说明 |
384| -------- | -------- | -------- | -------- |
385| slotType | [notification.SlotType](js-apis-notification.md#slottype) | 是 | 目标notification&nbsp;slot的类型。 |
386
387**返回值**:
388
389| 类型 | 说明 |
390| -------- | -------- |
391| Promise&lt;void&gt; | Promise类型异步回调。 |
392
393**示例**:
394
395```
396export default {
397    removeSlot() {        reminderAgent.removeNotificationSlot(notification.SlotType.CONTENT_INFORMATION).then(() => {
398            console.log("do next");
399        });
400    }
401}
402```
403
404
405## ActionButtonType
406
407按钮的类型。
408
409**系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.ReminderAgent
410
411| 名称 | 默认值 | 说明 |
412| -------- | -------- | -------- |
413| ACTION_BUTTON_TYPE_CLOSE | 0 | 表示关闭提醒的按钮。 |
414| ACTION_BUTTON_TYPE_SNOOZE | 1 | 表示延迟提醒的按钮。 |
415
416
417## ReminderType
418
419提醒的类型。
420
421**系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.ReminderAgent
422
423| 名称 | 默认值 | 说明 |
424| -------- | -------- | -------- |
425| REMINDER_TYPE_TIMER | 0 | 表示提醒类型:倒计时。 |
426| REMINDER_TYPE_CALENDAR | 1 | 表示提醒类型:日历。 |
427| REMINDER_TYPE_ALARM | 2 | 表示提醒类型:闹钟。 |
428
429
430## ActionButton
431
432用于设置弹出的提醒通知信息上显示的按钮类型和标题。
433
434**系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.ReminderAgent
435
436| 名称 | 参数类型 | 必填 | 说明 |
437| -------- | -------- | -------- | -------- |
438| title | string | 是 | 按钮显示的标题。 |
439| type | [ActionButtonType](#actionbuttontype) | 是 | 按钮的类型。 |
440
441
442## WantAgent
443
444点击提醒通知后跳转的目标ability信息。
445
446**系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.ReminderAgent
447
448| 名称 | 参数类型 | 必填 | 说明 |
449| -------- | -------- | -------- | -------- |
450| pkgName | string | 是 | 指明点击提醒通知栏后跳转的目标hap包名。 |
451| abilityName | string | 是 | 指明点击提醒通知栏后跳转的目标ability名称。 |
452
453
454## MaxScreenWantAgent
455
456全屏显示提醒到达时自动拉起的目标ability信息,该接口预留。
457
458**系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.ReminderAgent
459
460| 名称 | 参数类型 | 必填 | 说明 |
461| -------- | -------- | -------- | -------- |
462| pkgName | string | 是 | 指明提醒到达时自动拉起的目标hap包名(如果设备在使用中,则只弹出通知横幅框)。 |
463| abilityName | string | 是 | 指明提醒到达时自动拉起的目标ability名(如果设备在使用中,则只弹出通知横幅框)。 |
464
465
466## ReminderRequest
467
468提醒实例对象,用于设置提醒类型、响铃时长等具体信息。
469
470**系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.ReminderAgent
471
472| 名称 | 参数类型 | 必填 | 说明 |
473| -------- | -------- | -------- | -------- |
474| reminderType | ReminderType | 是 | 指明提醒类型。 |
475| actionButton | [ActionButton?,&nbsp;ActionButton?] | 否 | 弹出的提醒通知栏中显示的按钮(参数可选,支持0/1/2个按钮)。 |
476| wantAgent | WantAgent | 否 | 点击通知后需要跳转的目标ability信息。 |
477| maxScreenWantAgent | MaxScreenWantAgent | 否 | 提醒到达时跳转的目标包。如果设备正在使用中,则弹出一个通知框。 |
478| ringDuration | number | 否 | 指明响铃时长。 |
479| snoozeTimes | number | 否 | 指明延迟提醒次数。 |
480| timeInterval | number | 否 | 执行延迟提醒间隔。 |
481| title | string | 否 | 指明提醒标题。 |
482| content | string | 否 | 指明提醒内容。 |
483| expiredContent | string | 否 | 指明提醒过期后需要显示的内容。 |
484| snoozeContent | string | 否 | 指明延迟提醒时需要显示的内容。 |
485| notificationId | number | 否 | 指明提醒使用的通知的id号,相同id号的提醒会覆盖。 |
486| slotType | [notification.SlotType](js-apis-notification.md#slottype) | 否 | 指明提醒的slot类型。 |
487
488
489## ReminderRequestCalendar
490
491ReminderRequestCalendar extends ReminderRequest
492
493日历实例对象,用于设置提醒的时间。
494
495**系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.ReminderAgent
496
497| 名称 | 参数类型 | 必填 | 说明 |
498| -------- | -------- | -------- | -------- |
499| dateTime | [LocalDateTime](#localdatetime) | 是 | 指明提醒的目标时间。 |
500| repeatMonths | Array&lt;number&gt; | 否 | 指明重复提醒的月份。 |
501| repeatDays | Array&lt;number&gt; | 否 | 指明重复提醒的日期。 |
502
503
504## ReminderRequestAlarm
505
506ReminderRequestAlarm extends ReminderRequest
507
508闹钟实例对象,用于设置提醒的时间。
509
510**系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.ReminderAgent
511
512| 名称 | 参数类型 | 必填 | 说明 |
513| -------- | -------- | -------- | -------- |
514| hour | number | 是 | 指明提醒的目标时刻。 |
515| minute | number | 是 | 指明提醒的目标分钟。 |
516| daysOfWeek | Array&lt;number&gt; | 否 | 指明每周哪几天需要重复提醒。 |
517
518
519## ReminderRequestTimer
520
521ReminderRequestTimer extends ReminderRequest
522
523倒计时实例对象,用于设置提醒的时间。
524
525**系统能力**:SystemCapability.Notification.ReminderAgent
526
527| 名称 | 参数类型 | 必填 | 说明 |
528| -------- | -------- | -------- | -------- |
529| triggerTimeInSeconds | number | 是 | 指明倒计时的秒数。 |
530
531
532## LocalDateTime
533
534用于日历类提醒设置时指定时间信息。
535
536**系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.ReminderAgent
537
538| 名称 | 参数类型 | 必填 | 说明 |
539| -------- | -------- | -------- | -------- |
540| year | number | 是 | 年 |
541| month | number | 是 | 月 |
542| day | number | 是 | 日 |
543| hour | number | 是 | 时 |
544| minute | number | 是 | 分 |
545| second | number | 否 | 秒 |
546