Scripting 应用中的 Calendar
API 提供了与 iOS 日历账户、日历对象、事件和提醒事项交互的能力。
开发者可以通过此 API 获取默认日历、创建新的日历、列出支持特定实体类型(日程、提醒)的日历,以及管理日历属性。
定义日历的种类:
值 | 描述 |
---|---|
"birthday" |
生日日历 |
"calDAV" |
CalDAV 协议日历 |
"exchange" |
Exchange 账户日历 |
"local" |
本地日历 |
"subscription" |
订阅日历 |
定义日历账户源的种类:
值 | 描述 |
---|---|
"birthdays" |
生日账户 |
"calDAV" |
CalDAV 协议账户 |
"exchange" |
Exchange 账户 |
"local" |
本地账户 |
"mobileMe" |
MobileMe 账户 |
"subscribed" |
订阅账户 |
定义事件的可用性状态:
值 | 描述 |
---|---|
"busy" |
忙碌 |
"free" |
空闲 |
"tentative" |
暂定 |
"unavailable" |
不可用 |
定义日历中可管理的实体类型:
值 | 描述 |
---|---|
"event" |
日程事件 |
"reminder" |
提醒事项 |
代表一个日历账户源,例如本地账户、Exchange账户等。
属性名 | 类型 | 描述 |
---|---|---|
type |
CalendarSourceType |
账户源的类型 |
title |
string |
账户源的标题 |
identifier |
string |
账户源的唯一标识符 |
getCalendars(entityType: CalendarEntityType): Promise<Calendar[]>
获取该账户下指定实体类型(事件或提醒事项)支持的所有日历。
entityType: CalendarEntityType
— 需要获取的日历实体类型。Promise<Calendar[]>
— 日历对象数组。代表一个具体的日历对象,可用于管理日程、提醒事项等。
属性名 | 类型 | 描述 |
---|---|---|
identifier |
string |
日历的唯一标识符 |
title |
string |
日历标题 |
color |
Color |
日历颜色 |
type |
CalendarType |
日历种类 |
source |
CalendarSource |
日历帐户源 |
allowedEntityTypes |
CalendarEntityType |
日历允许包含的实体类型(事件或提醒) |
isForEvents |
boolean |
是否用于存储事件 |
isForReminders |
boolean |
是否用于存储提醒事项 |
allowsContentModifications |
boolean |
是否允许修改日历内容 |
isSubscribed |
boolean |
是否为订阅日历 |
supportedEventAvailabilities |
CalendarEventAvailability |
日历支持的事件可用性类型 |
remove(): Promise<void>
删除该日历。
save(): Promise<void>
保存对该日历的更改。
static defaultForEvents(): Promise<Calendar | null>
获取当前系统设置的默认事件日历。
static defaultForReminders(): Promise<Calendar | null>
获取当前系统设置的默认提醒事项日历。
static forEvents(): Promise<Calendar[]>
列出所有支持事件的日历。
static forReminders(): Promise<Calendar[]>
列出所有支持提醒事项的日历。
static create(options: { title: string, entityType: CalendarEntityType, sourceType: CalendarSourceType, color?: Color }): Promise<Calendar>
创建一个新的日历。
title: string
— 新日历的标题entityType: CalendarEntityType
— 支持的实体类型sourceType: CalendarSourceType
— 日历账户源类型color?: Color
— (可选)日历颜色Promise<Calendar>
— 新创建的日历对象。static presentChooser(allowMultipleSelection?: boolean): Promise<Calendar[]>
展示一个日历选择器界面,供用户选择一个或多个日历。
allowMultipleSelection?: boolean
— 是否允许多选,默认 false
。Promise<Calendar[]>
— 用户选择的日历列表。static getSources(): CalendarSource[]
获取当前设备上所有的日历账户源。