概述
功能介绍
应用退到后台或进程终止后,仍然有一些提醒用户的定时类任务,例如购物类应用抢购提醒等,为满足此类功能场景,系统提供了代理提醒(reminderAgentManager)的能力。当应用退至后台或进程终止后,系统会代理应用做相应的提醒。当前支持的提醒类型包括:倒计时、日历和闹钟。
-
倒计时类:基于倒计时的提醒功能。
-
日历类:基于日历的提醒功能。
-
闹钟类:基于时钟的提醒功能。
约束与限制
-
个数限制:一个三方应用支持最多30个有效提醒(有效即发布成功),一个系统应用支持最多10000个有效提醒,整个系统最多支持12000个有效提醒。
-
跳转限制:点击提醒通知后跳转的应用必须是申请代理提醒的本应用。
接口说明
表1 主要接口
以下是代理提醒的相关接口,下表均以Promise形式为例,更多接口及使用方式请见 后台代理提醒 文档。
接口名 | 描述 |
---|---|
publishReminder(reminderReq: ReminderRequest): Promise | 发布一个定时提醒类通知 |
cancelReminder(reminderId: number): Promise | 取消一个指定的提醒类通知 |
getValidReminders(): Promise<Array> | 获取当前应用设置的所有有效的提醒 |
cancelAllReminders(): Promise | 取消当前应用设置的所有提醒 |
addNotificationSlot(slot: NotificationSlot): Promise | 注册一个提醒类需要使用的通知通道(NotificationSlot) |
removeNotificationSlot(slotType: notification.SlotType): Promise | 删除指定的通知通道(NotificationSlot) |
开发步骤
-
申请ohos.permission.PUBLISH_AGENT_REMINDER权限,配置方式请参阅 声明权限 。
-
请求通知授权 。获得用户授权后,才能使用代理提醒功能。
-
导入模块。
import { reminderAgentManager } from '@kit.BackgroundTasksKit';
import { notificationManager } from '@kit.NotificationKit';
import { BusinessError } from '@kit.BasicServicesKit';
-
定义目标提醒代理。开发者根据实际需要,选择定义如下类型的提醒。
- 定义倒计时实例。
let targetReminderAgent: reminderAgentManager.ReminderRequestTimer = {
reminderType: