如何更新循环日历事件
PUBLISHED
如何更新循环日历事件教程
描述
本文介绍如何在你的应用中使用Tizen平台设备API修改/更新一个已有的日历循环事件。 本文仅应用于基于Tizen平台的系统。
前提条件
使用日历API方法,您在config.xml文件中必须声明需要的功能。
- :有允许使用的日历的全部功能的权限。 API的访问策略由执行或部署定义。
- :有从日历中读取数据的权限。
- :有往日历写日历的权限。
- :有允许使用Time API全功能的权限。
更新循环日历事件
要更新一个已有的事件有如下步骤:
- 检索日历实例。
- 检索日历事件。
- 确定要被更新的事件。
- 保存更新的事件。
用的calendar.getDefaultCalendar方法检索默认日历实例。
$ var myCalendar = null;
// Get the default calendar
$ myCalendar = tizen.calendar.getDefaultCalendar("EVENT");
通过Calendar.find方法,你可以在默认日历事件中获取全部或部分(以过滤器)列表。 在这个例子中,onEventSearchSuccess()方法被注册为一个成功回调函数,onError()方法被注册为一个处理错误的回调函数。
//Fetch all events in default calendar
$ myCalendar.find(onEventSearchSuccess, onError);
您可以用过滤器指定过滤条件,并通过过滤器和Calendar.find方法搜索操作的排列顺序。
// Define the event success callback.
$ function eventSearchSuccess(events) {
updateEvent(events[0]);
}
//The error callback
$ function onError(e) {
console.log(e.message);
}
通过Calendar.update方法可以更新已有的日历事项。 Calendar.update方法有两个参数;被更新的日历事项,和一个布尔参数。
布尔参数指示是否需要更新日历事项所有发生的事件。
假设事件数组的第一个事件是我们用下面更新程序运行的循环事件。
更新单个实例日历循环事件
为了更新循环事件的单个实例,可以通过调用ev.expandRecurrence方法获取事件实例列表。 一旦你检索了所有的事件实例,随着需要被更新的事件实例调用myCalendar.update()方法并将updateAllInstances标志设为“false”。
// The error callback
$ function errorCB(response) {
console.log( 'The following error occurred: ' + response.name);
}
// The expand success callback
$ function eventExpandSuccessCB(events) {
events[1].summary = 'updated the summary';
myCalendar.update(events[1], false);
}
$ function updateEvent(ev) {
// Expand the recurring event to get its instances
ev.expandRecurrence(
new tizen.TZDate(2012, 2, 1),
new tizen.TZDate(2012, 2, 15),
eventExpandSuccessCB,
errorCB );
}
更新循环日历事件的所有实例
为了更新循环日历事件的所有实例,随着需要被更新的事件实例调用myCalendar.update()方法并将updateAllInstances标志设为“true”。
//Update all the instaces of recurring event.
$ function updateEvent(ev) {
myCalendar.update(ev, true)
}
评论:
适用于开发人员的提示