刚才外面人多 进来我给各位细说
日历:用于记载日期、节日,重要事件的工具。
前言 -运作机制
Calendar Kit为用户提供了一系列接口来获取日历账户,并使用特定的接口向日历账户中写入日程。如果写入的日程带有提醒时间则系统会在时间到达时向用户发送提醒
# Calendar Kit开发指南
1 申请权限 Calendar Kit所需权限有:
- ohos.permission.READ_CALENDAR:用于读取日历日程信息。
- ohos.permission.WRITE_CALENDAR:用于写入日历日程信息 必须手动申请且获得用户授权才能使用上述权限
a 申请步骤
在entry/src/main/module.json5中配置所需申请的权限
// 日历
// 权限级别: normal
// 授权方式: user_grant
{
"name": "ohos.permission.READ_CALENDAR", // 只读日历
"reason": '$string:permission_reason_calendar',// 授权原因
"usedScene": {} // 额外参数
},
{
"name": "ohos.permission.WRITE_CALENDAR", // 写入日历
"reason": '$string:permission_reason_calendar',
"usedScene": {}
},
2 在代码中手动申请权限(下面是我使用封装好的)
感兴趣可以查看我之前的文章 应用权限管理
// 获取弹窗权限
async requestPermissions() {
try {
await permissionManger.requestPermissions(this.permissions)
} catch (err) {
promptAction.showDialog({
message: "开启权限体验更好的服务需要开启吗",
buttons: [
{ text: "取消", color: "#999999" },
{ text: "设置", color: "0000ff" }
]
})
.then((res) => {
if (res.index === 1) {
permissionManger.openPermissionSettingsPage()
}
})
}
}
日志开发 -> 官方文档
# 日程管理能力
1 导入模块
import calendarManager from '@ohos.calendarManager';
根据上下文获取 calendarManager对象 用于管理日历
2 CalendarManager
示例中需先通过getCalendarManager()方法获取CalendarManager对象,再通过此对象调用对应方法,进行Calendar的创建、删除、修改、查询等操作。 调用的方法有很多
- createCalendar 用于创建 Calender
- deleteCanlendar 用于删除指定的calendar
- getCalendar 用于获取Calendar
- getAllCalendars 用于获取应用所创建的Calendar对象以默认Calendar对象
3 Calendar
下列API示例中需先通过createCalendar()、getCalendar()中任一方法获取Calendar对象,再通过此对象调用对应方法,对该Calendar下的日程进行创建、删除、修改、查询等操作
| Calendar | |
|---|---|
| addEvent | 创建日程 |
| addEvents | 批量创建日程 |
| deleteEvent | 删除指定的id日程 |
| deleteEvents | 根据日程id 批量删除日程 |
| updateEvent | 更新日程 |
| getEvents | 查询Calendar下所有Event |
| getVonfig | 获取日历配置信息 |
详情可以查看文档
添加日程使用 实例:
// 添加日程
async addEvent(event: calendarManager.Event) {
// 根据上下文获取CalendarManager对象,用于管理日历
const calendar = calendarManager.getCalendarManager(getContext())
return calender.addEvent(event)
}
返回值 返回日程的id
属性
| 名称 | 类型 | 只读 | 必填 | 说明 |
|---|---|---|---|---|
| id | number | 是 | 是 | 日历帐户id。 |
查询实例:
- filterById 根据id查询
- filterByTime 根据时间查询
- filterTitle 根据标题查询
// 更具标题查询日程
async searchEvents(title: string) {
// 根据上下文获取CalendarManager对象,用于管理日历
const calendar = calendarManager.getCalendarManager(getContext())
// 查询条件
calendarManager.EventFilter.filterByTitle(title)
// 可选参数 可传可不传
return calender.getEvents(eventFilter)
}
删除 传入的参数 日程的id 实例:
// 删除单个日程
async deleteEvent(id: number) {
// 根据上下文获取CalendarManager对象,用于管理日历
const calendar = calendarManager.getCalendarManager(getContext())
return calender.deleteEvent(id)
}
添加日程Event对象参数 更多参数详情
| Event参数 | 说明 | 必填 |
|---|---|---|
| title | 标题 | 否 |
| type | 日志类型 | 是 |
| starTime | 日程开始时间 | 是 |
| endTime | 日程结束时间 | 是 |
以上就是添加 删除 查询的内容
以上就是我个人见解 本人小白一名 如有错的地方 敬请谅解 欢迎大家补充 感谢