HarmonyOS 鸿蒙Next 开发日程提醒功能,比如预约12月4号,到日期会提醒用户操作
HarmonyOS 鸿蒙Next 开发日程提醒功能,比如预约12月4号,到日期会提醒用户操作 开发日程提醒,比如预约12月4号,到日期会提醒用户操作。
是否有演示?
日程提醒的开发步骤请参照文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/agent-powered-reminder-V5
案例:以新增一个每日20点的跑步提醒为例:假设用户在每晚8点新增这个跑步提醒,应用根据用户设置的信息生成提醒实例并发布提醒。由后台代理提醒服务调用系统服务启动计时。到每天的晚上8点时,系统唤醒后台代理提醒服务发布通知,最终由通知服务触发桌面显示通知。
在整个流程中,应用仅需:
- 使用reminderAgentManager模块的ReminderRequest类定义提醒实例;
- 使用reminderAgentManager模块的publishReminder接口发布提醒。
无需关注计时和通知发布等功能如何实现。
若是删除提醒流程,需要使用reminderAgentManager模块的cancelReminder接口取消提醒;若是修改提醒流程,则需要先删除旧的提醒,再新增新的提醒。
相关API介绍与应用:
在用使用后台代理提醒功能之前,必须设置权限,获取用户弹窗同意权限。
- 添加后台代理提醒使用权限。
"requestPermissions": [
{
"name": "ohos.permission.INTERNET",
},
{
"name": "ohos.permission.PUBLISH_AGENT_REMINDER",
"reason": "$string:notStr",
"usedScene": {
"abilities": [
"EntryAbility"
],
"when": "always"
}
}
]
- 申请通知弹窗权限
let requestEnableNotificationCallback = (err: Base.BusinessError) => {
if (err) {
console.info("失败" + JSON.stringify(err));
} else {
console.info("成功");
}
};
notificationManager.requestEnableNotification(requestEnableNotificationCallback);
- 导入后台代理提醒模块
import reminderAgentManager from '@ohos.reminderAgentManager';
- 创建一个倒计时提醒
this.timer:reminderAgentManager.ReminderRequestTimer = {
reminderType: 0, // 类型 reminderAgentManager.ReminderType.REMINDER_TYPE_TIMER : 0
triggerTimeInSeconds: 10, //指明倒计时的秒数
// 弹出的提醒通知栏中显示的按钮。最多支持两个,关闭:ACTION_BUTTON_TYPE_CLOSE;延迟:ACTION_BUTTON_TYPE_SNOOZE
actionButton: [
{ title: '关闭', type: 0 },
{ title: '延迟', type: 1 }
],
wantAgent: { pkgName: 'com.example.backgroundtaskskitdemo', abilityName: 'EntryAbility' }, //点击通知后需要跳转的目标ability信息
title: '倒计时提醒标题', //指明提醒标题
content: '倒计时提醒内容', //倒计时提醒内容
expiredContent: '倒计时提醒过期后需要显示的内容', //指明提醒过期后需要显示的内容
notificationId: 100, //指明提醒使用的通知的id号,相同id号的提醒会覆盖
tapDismissed: true, // 通知是否自动清除
autoDeletedTime: 10, // 自动清除时间
snoozeTimes: 0, // 延迟时间 (不适用与倒计时)
customRingUri: '', // 自定义响铃文件
ringDuration: 10, // 响铃时间 默认一秒
}
- 创建一个日历提醒实例
let calendar: reminderAgentManager.ReminderRequestCalendar = {
reminderType: reminderAgentManager.ReminderType.REMINDER_TYPE_CALENDAR, // 类型 1
dateTime: {
year: 2024,
month: 4,
day: 19,
hour: 22,
minute: 10,
second: 59
}, // 年月日时分秒
repeatMonths: [], // 指明重复提醒的月份
repeatDays: [], //指明重复提醒的日期
daysOfWeek: [], //指明每周哪几天需要重复提醒。范围为周一到周日,对应数字为1到7
actionButton: [
{ title: '关闭', type: 0 },
{ title: '延迟', type: 1 }
],
wantAgent: { pkgName: 'com.example.backgroundtaskskitdemo', abilityName: 'EntryAbility' }, //点击通知后需要跳转的目标ability信息
title: '倒计时提醒标题', //指明提醒标题
content: '倒计时提醒内容', //倒计时提醒内容
expiredContent: '倒计时提醒过期后需要显示的内容', //指明提醒过期后需要显示的内容
notificationId: 100, //指明提醒使用的通知的id号,相同id号的提醒会覆盖
tapDismissed: true, // 通知是否自动清除
autoDeletedTime: 10, // 自动清除时间
snoozeTimes: 0, // 延迟时间 (不适用与倒计时)
customRingUri: '', // 自定义响铃文件
ringDuration: 10, // 响铃时间 默认一秒
}
- 创建一个闹钟提醒实例
reminderType: reminderAgentManager.ReminderType.REMINDER_TYPE_ALARM, // 类型 2
hour: 20, // 小时
minute: 0, // 分钟
daysOfWeek: [2, 4, 6], //指明每周哪几天需要重复提醒。范围为周一到周日,对应数字为1到7
actionButton: [
{ title: '关闭', type: 0 },
{ title: '延迟', type: 1 }
],
wantAgent: { pkgName: 'com.example.backgroundtaskskitdemo', abilityName: 'EntryAbility' }, //点击通知后需要跳转的目标ability信息
title: '倒计时提醒标题', //指明提醒标题
content: '倒计时提醒内容', //倒计时提醒内容
expiredContent: '倒计时提醒过期后需要显示的内容', //指明提醒过期后需要显示的内容
notificationId: 100, //指明提醒使用的通知的id号,相同id号的提醒会覆盖
tapDismissed: true, // 通知是否自动清除
autoDeletedTime: 10, // 自动清除时间
snoozeTimes: 0, // 延迟时间 (不适用与倒计时)
customRingUri: '', // 自定义响铃文件
ringDuration: 10, // 响铃时间 默认一秒
- 发布提醒
reminderAgentManager.publishReminder(this.timer).then((reminderId: number) => {
promptAction.showToast({ message: '发布成功' + reminderId })
this.reminderId = reminderId
}).catch((err: BusinessError) => {
console.error("错误码:" + err.code + "错误信息:" + err.message)
})
- 通过id取消某个提醒
if (this.reminderId) {
promptAction.showToast({ message: '取消成功' + this.reminderId })
reminderAgentManager.cancelReminder(this.reminderId)
}
更多关于HarmonyOS 鸿蒙Next 开发日程提醒功能,比如预约12月4号,到日期会提醒用户操作的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
针对“HarmonyOS 鸿蒙Next 开发日程提醒功能,比如预约12月4号,到日期会提醒用户操作”的问题,以下是专业且简洁的回答:
在HarmonyOS鸿蒙Next系统中开发日程提醒功能,可以通过以下步骤实现:
-
数据存储:首先,需要设计数据库或数据结构来存储用户的日程信息,包括提醒日期、时间、事件内容等。
-
时间判断:系统需要定期(如每分钟或每小时)检查当前时间是否与数据库中存储的提醒时间相匹配。这可以通过定时器或系统时间监听机制来实现。
-
提醒机制:当系统检测到当前时间与提醒时间一致时,触发提醒机制。提醒方式可以是弹窗、通知栏消息、声音等,具体取决于用户需求。
-
用户交互:用户可以在收到提醒后进行相应操作,如确认、取消或重新安排日程。这些操作需要设计相应的用户界面来支持。
-
权限管理:在开发过程中,需要注意申请并处理相关系统权限,如访问日历、发送通知等。
-
测试与优化:完成功能开发后,需要进行充分的测试以确保稳定性和准确性,并根据测试结果进行优化。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html