当前位置:   article > 正文

鸿蒙原生应用/元服务开发-代理提醒开发步骤(二)

鸿蒙原生应用/元服务开发-代理提醒开发步骤(二)

1.申请ohos.permission.PUBLISH_AGENT_REMINDER权限。
2.使能通知开关。获得用户授权后,才能使用代理提醒功能。

3.导入模块。

  1. import reminderAgentManager from '@ohos.reminderAgentManager';
  2. import notificationManager from '@ohos.notificationManager';

4.定义目标提醒代理。开发者根据实际需要,选择定义如下类型的提醒。
定义倒计时实例。

  1. let targetReminderAgent: reminderAgentManager.ReminderRequestTimer = {
  2. reminderType: reminderAgentManager.ReminderType.REMINDER_TYPE_TIMER, // 提醒类型为倒计时类型
  3. triggerTimeInSeconds: 10,
  4. actionButton: [// 设置弹出的提醒通知信息上显示的按钮类型和标题
  5. {
  6. title: 'close',
  7. type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_CLOSE
  8. }
  9. ],
  10. wantAgent: { // 点击提醒通知后跳转的目标UIAbility信息
  11. pkgName: 'com.example.myapplication',
  12. abilityName: 'EntryAbility'
  13. },
  14. maxScreenWantAgent: { // 全屏显示提醒到达时自动拉起的目标UIAbility信息
  15. pkgName: 'com.example.myapplication',
  16. abilityName: 'EntryAbility'
  17. },
  18. title: 'this is title', // 指明提醒标题
  19. content: 'this is content', // 指明提醒内容
  20. expiredContent: 'this reminder has expired', // 指明提醒过期后需要显示的内容
  21. notificationId: 100, // 指明提醒使用的通知的ID号,相同ID号的提醒会覆盖
  22. slotType: notificationManager.SlotType.SOCIAL_COMMUNICATION // 指明提醒的Slot类型
  23. }

定义日历实例。

  1. let targetReminderAgent: reminderAgentManager.ReminderRequestCalendar = {
  2. reminderType: reminderAgentManager.ReminderType.REMINDER_TYPE_CALENDAR, // 提醒类型为日历类型
  3. dateTime: { // 指明提醒的目标时间
  4. year: 2023,
  5. month: 1,
  6. day: 1,
  7. hour: 11,
  8. minute: 14,
  9. second: 30
  10. },
  11. repeatMonths: [1], // 指明重复提醒的月份
  12. repeatDays: [1], // 指明重复提醒的日期
  13. actionButton: [// 设置弹出的提醒通知信息上显示的按钮类型和标题
  14. {
  15. title: 'close',
  16. type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_CLOSE
  17. },
  18. {
  19. title: 'snooze',
  20. type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_SNOOZE
  21. },
  22. ],
  23. wantAgent: { // 点击提醒通知后跳转的目标UIAbility信息
  24. pkgName: 'com.example.myapplication',
  25. abilityName: 'EntryAbility'
  26. },
  27. maxScreenWantAgent: { // 全屏显示提醒到达时自动拉起的目标UIAbility信息
  28. pkgName: 'com.example.myapplication',
  29. abilityName: 'EntryAbility'
  30. },
  31. ringDuration: 5, // 指明响铃时长(单位:秒)
  32. snoozeTimes: 2, // 指明延迟提醒次数
  33. timeInterval: 5, // 执行延迟提醒间隔(单位:秒)
  34. title: 'this is title', // 指明提醒标题
  35. content: 'this is content', // 指明提醒内容
  36. expiredContent: 'this reminder has expired', // 指明提醒过期后需要显示的内容
  37. snoozeContent: 'remind later', // 指明延迟提醒时需要显示的内容
  38. notificationId: 100, // 指明提醒使用的通知的ID号,相同ID号的提醒会覆盖
  39. slotType: notificationManager.SlotType.SOCIAL_COMMUNICATION // 指明提醒的Slot类型
  40. }

定义闹钟实例。

  1. let targetReminderAgent: reminderAgentManager.ReminderRequestAlarm = {
  2. reminderType: reminderAgentManager.ReminderType.REMINDER_TYPE_ALARM, // 提醒类型为闹钟类型
  3. hour: 23, // 指明提醒的目标时刻
  4. minute: 9, // 指明提醒的目标分钟
  5. daysOfWeek: [2], // 指明每周哪几天需要重复提醒
  6. actionButton: [ // 设置弹出的提醒通知信息上显示的按钮类型和标题
  7. {
  8. title: 'close',
  9. type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_CLOSE
  10. },
  11. {
  12. title: 'snooze',
  13. type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_SNOOZE
  14. },
  15. ],
  16. wantAgent: { // 点击提醒通知后跳转的目标UIAbility信息
  17. pkgName: 'com.example.myapplication',
  18. abilityName: 'EntryAbility'
  19. },
  20. maxScreenWantAgent: { // 全屏显示提醒到达时自动拉起的目标UIAbility信息
  21. pkgName: 'com.example.myapplication',
  22. abilityName: 'EntryAbility'
  23. },
  24. ringDuration: 5, // 指明响铃时长(单位:秒)
  25. snoozeTimes: 2, // 指明延迟提醒次数
  26. timeInterval: 5, // 执行延迟提醒间隔(单位:秒)
  27. title: 'this is title', // 指明提醒标题
  28. content: 'this is content', // 指明提醒内容
  29. expiredContent: 'this reminder has expired', // 指明提醒过期后需要显示的内容
  30. snoozeContent: 'remind later', // 指明延迟提醒时需要显示的内容
  31. notificationId: 99, // 指明提醒使用的通知的ID号,相同ID号的提醒会覆盖
  32. slotType: notificationManager.SlotType.SOCIAL_COMMUNICATION // 指明提醒的Slot类型
  33. }

5.发布相应的提醒代理。代理发布后,应用即可使用后台代理提醒功能。

  1. reminderAgentManager.publishReminder(targetReminderAgent).then(res => {
  2. console.info('Succeeded in publishing reminder. ');
  3. let reminderId: number = res; // 发布的提醒ID
  4. }).catch(err => {
  5. console.error(`Failed to publish reminder. Code: ${err.code}, message: ${err.message}`);
  6. })

6.根据需要删除提醒任务。

  1. // reminderId的值从发布提醒代理成功之后的回调中获得
  2. reminderAgentManager.cancelReminder(reminderId).then(() => {
  3. console.info('Succeeded in canceling reminder.');
  4. }).catch(err => {
  5. console.error(`Failed to cancel reminder. Code: ${err.code}, message: ${err.message}`);
  6. });

本文根据HarmonyOS官方开发文档学习整理

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/291232
推荐阅读
相关标签
  

闽ICP备14008679号