目前可以通过以下方式尝试在 HarmonyOS 中集成系统日历事件提醒功能:当前只支持跳转至系统日历 App,不能传参数到日历中指定具体日期,示例代码如下:import common from oho...
目前可以通过以下方式尝试在 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);
}
}