Calendar Kit提供日历与日程管理能力,包括日历的获取和日程的创建能力。
Calendar Kit为用户提供了一系列接口来获取日历账户,并使用特定的接口向日历账户中写入日程。
如果写入的日程带有提醒时间则系统会在时间到达时向用户发送提醒。
在module.json5中配置所需申请的权限
"requestPermissions": [
{
"name": "ohos.permission.READ_CALENDAR",
},
{
"name": "ohos.permission.WRITE_CALENDAR"
}
]
EntryAbility中检查用户是否确认权限:
import {
abilityAccessCtrl,
AbilityConstant,
common,
PermissionRequestResult,
Permissions,
UIAbility,
Want
} from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { window } from '@kit.ArkUI';
import { calendarManager } from '@kit.CalendarKit';
import { BusinessError } from '@kit.BasicServicesKit';
/**
* 日志管理器全局对象
*/
export let calendarMgr: calendarManager.CalendarManager | null = null;
export let mContext: common.UIAbilityContext | null = null;
export default class EntryAbility extends UIAbility {
onWindowStageCreate(windowStage: window.WindowStage): void {
// Main window is created, set main page for this ability
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');
windowStage.loadContent('pages/Index', (err) => {
if (err.code) {
hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
return;
}
hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.');
});
//检测用户是否授权日历权限
mContext = this.context;
const permissions: Permissions[] = ['ohos.permission.READ_CALENDAR', 'ohos.permission.WRITE_CALENDAR'];
let atManager = abilityAccessCtrl.createAtManager();
atManager.requestPermissionsFromUser(mContext, permissions).then((result: PermissionRequestResult) => {
//给日历管理器赋值
calendarMgr = calendarManager.getCalendarManager(mContext);
}).catch((error: BusinessError) => {
console.error(`get Permission error, error: ${JSON.stringify(error)}`);
})
}
}
提供了添加、删除、获取日历账户的相关方法。如果不需要关注日程(Event)的账户(Calendar)归属时,可以直接使用getCalendar方法直接获取。
相关方法如下:
可以对账户中的日程进行创建、删除、修改、查询等操作,还有日历配置信息、日历账户信息等方法
td {white-space:nowrap;border:1px solid #dee0e3;font-size:10pt;font-style:normal;font-weight:normal;vertical-align:middle;word-break:normal;word-wrap:normal;}
名称 | 类型 | 只读 | 必填 | 说明 |
---|---|---|---|---|
id | number | 否 | 否 | 日程id。当调用addEvent()、addEvents()创建日程时,不填写此参数。元服务API: 从API version 11开始,该接口支持在元服务中使用。 |
type | EventType | 否 | 是 | 日程类型。元服务API: 从API version 11开始,该接口支持在元服务中使用。 |
title | string | 否 | 否 | 日程标题。不填时,默认为空字符串。元服务API: 从API version 11开始,该接口支持在元服务中使用。 |
location | Location | 否 | 否 | 日程地点。不填时,默认为null。元服务API: 从API version 11开始,该接口支持在元服务中使用。 |
startTime | number | 否 | 是 | 日程开始时间,需要13位时间戳。元服务API: 从API version 11开始,该接口支持在元服务中使用。 |
endTime | number | 否 | 是 | 日程结束时间,需要13位时间戳。元服务API: 从API version 11开始,该接口支持在元服务中使用。 |
isAllDay | boolean | 否 | 否 | 是否为全天日程。当取值为true时,说明为全天日程;当取值为false时,说明不是全天日程,默认为非全天日程。元服务API: 从API version 11开始,该接口支持在元服务中使用。 |
attendee | Attendee[] | 否 | 否 | 日程参与者。不填时,默认为null。元服务API: 从API version 11开始,该接口支持在元服务中使用。 |
timeZone | string | 否 | 否 | 日程时区。不填时,默认为当前所在时区,当需要创建与当前不一样的时区时,可填入对应的时区。可通过getTimeZone()获取当前系统时区。元服务API: 从API version 11开始,该接口支持在元服务中使用。 |
reminderTime | number[] | 否 | 否 | 日程提醒时间,单位为分钟。填写x分钟,即距开始时间提前x分钟提醒,不填时,默认为不提醒。可为负值。 |
recurrenceRule | RecurrenceRule | 否 | 否 | 日程重复规则。不填时,默认为不重复。元服务API: 从API version 11开始,该接口支持在元服务中使用。 |
description | string | 否 | 否 | 日程描述。不填时,默认为空字符串。元服务API: 从API version 11开始,该接口支持在元服务中使用。 |
service | EventService | 否 | 否 | 日程服务。不填时,默认没有一键服务。元服务API: 从API version 11开始,该接口支持在元服务中使用。 |
identifier12+ | string | 否 | 否 | 写入方可指定日程唯一标识。不填时,默认为null。该字段暂不支持。元服务API: 从API version 12开始,该接口支持在元服务中使用。 |
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。