HarmonyOS 鸿蒙Next 开发日程提醒功能,比如预约12月4号,到日期会提醒用户操作

HarmonyOS 鸿蒙Next 开发日程提醒功能,比如预约12月4号,到日期会提醒用户操作 开发日程提醒,比如预约12月4号,到日期会提醒用户操作。

是否有演示?

2 回复

日程提醒的开发步骤请参照文档: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系统中开发日程提醒功能,可以通过以下步骤实现:

  1. 数据存储:首先,需要设计数据库或数据结构来存储用户的日程信息,包括提醒日期、时间、事件内容等。

  2. 时间判断:系统需要定期(如每分钟或每小时)检查当前时间是否与数据库中存储的提醒时间相匹配。这可以通过定时器或系统时间监听机制来实现。

  3. 提醒机制:当系统检测到当前时间与提醒时间一致时,触发提醒机制。提醒方式可以是弹窗、通知栏消息、声音等,具体取决于用户需求。

  4. 用户交互:用户可以在收到提醒后进行相应操作,如确认、取消或重新安排日程。这些操作需要设计相应的用户界面来支持。

  5. 权限管理:在开发过程中,需要注意申请并处理相关系统权限,如访问日历、发送通知等。

  6. 测试与优化:完成功能开发后,需要进行充分的测试以确保稳定性和准确性,并根据测试结果进行优化。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部