ArkTS后台代理提醒,需要如何处理?

ArkTS后台代理提醒

HarmonyOS
2024-05-26 15:59:40
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
mafast

1. 声明使用权限

使用后台代理提醒需要在配置文件中声明需要此权限:

"reqPermissions": [ 
  { 
    "name": "ohos.permission.PUBLISH_AGENT_REMINDER", 
  } 
]

2. 导入模块

import reminderAgent from'@ohos.reminderAgent';

3. 创建需要发布的提醒实例,先展示后台代理提醒的使用方法。当提醒类型为闹钟时,参数hour与minute为必填。

let reminderRequest : reminderAgent.ReminderRequestAlarm  = { 
  reminderType: reminderAgent.ReminderType.REMINDER_TYPE_ALARM,//提醒类型:闹钟 
  hour: this.hour,//小时 
  minute: this.minute,//分钟 
  title: '闹钟',//标题 
  actionButton: [//提醒通知栏中显示的按钮 
    { 
      title: "close", 
      type: reminderAgent.ActionButtonType.ACTION_BUTTON_TYPE_CLOSE 
    } 
  ], 
  maxScreenWantAgent: {//点击通知后需要跳转的目标ability信息 
    pkgName : 'com.example.alarmclock', 
    abilityName: 'com.example.alarmclock.MainAbility' 
  } 
}

设置reminderType指明提醒类型,如果设置reminderAgent.ReminderType.REMINDER_TYPE_ALARM表示提醒类型为闹钟,如果设置reminderAgent.ReminderType.REMINDER_TYPE_CALENDAR表示提醒类型为日历,如果设置reminderAgent.ReminderType.REMINDER_TYPE_TIMER表示提醒类型为倒计时

设置hour指明提醒的目标时刻。

设置minute指明提醒的目标分钟。

设置title指明提醒的标题。

设置content指明提醒的内容。

设置actionButton指明提醒通知栏中显示的按钮,按钮可设置两种不同类型,ACTION_BUTTON_TYPE_CLOSE表示为关闭提醒按钮,ACTION_BUTTON_TYPE_SNOOZE表示为延迟提醒按钮。

设置maxScreenWantAgent指明点击通知后需要跳转的目标ability信息。

4. 创建倒计时提醒实例。当提醒类型为倒计时,参数triggerTimeInSeconds为必填。

let timer : reminderAgent.ReminderRequestTimer = { 
  reminderType: reminderAgent.ReminderType.REMINDER_TYPE_TIMER,//提醒类型:倒计时 
  triggerTimeInSeconds: 10,//设置倒计时的秒数 
  actionButton: [ 
    { 
      title: "close", 
      type: reminderAgent.ActionButtonType.ACTION_BUTTON_TYPE_CLOSE 
    } 
  ], 
  wantAgent: { 
    pkgName: "com.example.device", 
    abilityName: "com.example.device.MainAbility" 
  }, 
  title: "this is title", 
  content: "this is content", 
}

设置triggerTimeInSeconds指明提醒的秒数。

5.通过publishReminder(reminderReq: ReminderRequest)发布一个后台代理提醒。

this.reminderId = await reminderAgent.publishReminder(reminderRequest)

6. 通过cancelReminder(reminderId: number取消后台代理提醒。

reminderAgent.cancelReminder(item.reminderId, () => { 
  Logger.info(TAG, `do next`) 
})
分享
微博
QQ
微信
回复
2024-05-27 21:10:03
相关问题
后台代理提醒,定时闹钟提醒功能。
367浏览 • 1回复 待解决
ArkTS语法校验报错,该如何处理啊?
392浏览 • 1回复 待解决
如何处理Redis的内存优化?
1675浏览 • 1回复 待解决
应用线程过多时如何处理
747浏览 • 1回复 待解决
注册监听关机事件,该如何处理
437浏览 • 1回复 待解决
如何处理应用卡死(appfreeze)问题
745浏览 • 1回复 待解决
如何处理webview显示元素尺寸过小
702浏览 • 1回复 待解决
错误rowCount返回值-1如何处理
413浏览 • 1回复 待解决
如何处理HAR之间的互相依赖
967浏览 • 1回复 待解决
如何处理消息被频控的问题
688浏览 • 1回复 待解决
求大佬告知如何处理误分类问题
731浏览 • 1回复 待解决
如何处理推送数量不够用问题
728浏览 • 1回复 待解决
监听音频打断事件,该如何处理
442浏览 • 1回复 待解决
权限的申请与校验,该如何处理啊?
433浏览 • 1回复 待解决
如何处理应用存在的URL硬编码?
362浏览 • 1回复 待解决
有谁知道web拦截如何处理文件
436浏览 • 1回复 待解决