首页 小组 问答 话题 好文 素材 用户 唠叨 我的社区

[分享]开发HarmonyOS应用时,如何集成并使用系统的日历事件提醒功能?

风轻yLv.1种子选手
2024-09-21 14:17:53
0
47

目前可以通过以下方式尝试在 HarmonyOS 中集成系统日历事件提醒功能:当前只支持跳转至系统日历 App,不能传参数到日历中指定具体日期,示例代码如下:

import common from '@ohos.app.ability.common';
const context = getContext(this)
@Entry
@Component
struct Index{
  build(){
    Button("跳转到日历").onClick(()=>{
      let context = getContext(this) as common.UIAbilityContext;
      context.startAbility({
        bundleName: 'com.huawei.hmos.calendar',
        abilityName: 'MainAbility',
      });
    })
  }
}

另外,使用 reminderAgentManager.publishReminder 发布日历提醒时,需在 module.json5 中添加 ohos.permission.PUBLISH_AGENT_REMINDER 权限,并在调用方法时请求响应权限。但可能会遇到调试代码提示 NotificationBussinessError 1700001: Notification not enable 的问题,手动在设置页面开启 Notification 后,创建提醒成功,但是在系统的日历 app 中无法看到创建的提醒,示例代码如下:

public addCalendarEvent(title:string, description:string, reminderTime:number, previousTime:number, days:Array<number>,context:Context)
{
  let atManager = abilityAccessCtrl.createAtManager();
  try {
    atManager.requestPermissionsFromUser(context, ["ohos.permission.PUBLISH_AGENT_REMINDER","ohos.permission.WRITE_CALENDAR"], (err, data)=>{
      console.info("data:" + JSON.stringify(data));
      console.info("data permissions:" + data.permissions);
      console.info("data authResults:" + data.authResults);
      let timer:reminderAgentManager.ReminderRequestCalendar = {
        reminderType: reminderAgentManager.ReminderType.REMINDER_TYPE_CALENDAR,
        title:title,
        content:description,
      }
    })
  } catch (error) {
    console.error('Error requesting permissions:', error);
  }
}
风轻y
风轻y

31 天前

签名 :   47       0
评论
站长交流