カレンダーの取得・追加・削除
続いて、カレンダーのカレンダーの取得・追加・削除について解説します。図3はそれらを行うサンプルアプリのキャプチャです。
カレンダー一覧の取得
カレンダー一覧を取得する場合には、リスト5に示すlistCalendarsメソッドを使用し、引数は表2で示す項目が指定できます。
listCalendars(successCallback, errorCallback)
| 変数名 | 型 | 説明 |
|---|---|---|
| successCallback | Function | 一覧を取得したときに呼ばれるコールバック関数 |
| errorCallback | Function | エラーが発生したときのコールバック関数 |
一覧の取得に成功するとsuccessCallbackの引数から表3に示すプロパティをもつオブジェクトの配列が取得できます。ただし、カレンダーの色情報を取得することはできません。
| プロパティ名 | 型 | 説明 |
|---|---|---|
| id | DOMString | カレンダーを識別するためのID (Androidの場合には"1"などのように数字ですが、iOSの場合には"869A5BBA-1594-45B1-B118-B713104BB290Z"のようになります) |
| name | DOMString | カレンダーの名称 |
| type | DOMString | カレンダーのタイプ。CalDavやSubscriptionなど同期しているカレンダーの種別が取得可能。( iOSのみ ) |
リスト6は一覧取得をするときのサンプルコードです。
function CalListController($scope){
var loadCal = function(){
// (1) 一覧の取得
window.plugins.calendar.listCalendars(function(list){
// (2) 画面へ反映
$scope.$apply(function(){
$scope.list = list;
});
},function(){
alert("NG:LIST CAL",arguments);
});
};
// : 省略
loadCal();
};
(1)でカレンダー一覧を取得し、(2)でAngularJSの$applyメソッドを通じて一覧画面を表示しています。ただし、カレンダーの色は取得できないようです。
カレンダーの作成
カレンダーを新規に作成する場合は、リスト7のcreateCalendarメソッドを使います。引数には表4で示す項目が指定できます。
createCalendar(stringOrObject, successCallback,errorCallback)
| 変数名 | 型 | 説明 |
|---|---|---|
| stringOrObject | DOMString or Object | カレンダー名もしくは、getCreateCalendarOptions()で作成したオブジェクトを指定 |
| successCallback | Function | 作成したときに呼ばれるコールバック関数 |
| errorCallback | Function | エラーが発生したときのコールバック関数 |
また、第1引数のstringOrObjectにはカレンダー名の文字列だけではなく、getCreateCalendarOptionsメソッドで作成したオブジェクトが指定できます。このオブジェクトは、表5のようなプロパティがあります。
| プロパティ名 | 型 | 説明 |
|---|---|---|
| calendarName | DOMString | カレンダー名 |
| calendarColor | DOMString | カレンダーの色 |
実際にこのオブジェクトを利用してカレンダーを作成するときのサンプルコードがリスト8です。
function CalAddController($scope){
$scope.message = null;
$scope.add = function(){
// :省略
// (1) カレンダー作成する際のオプション
var opts = window.plugins.calendar.getCreateCalendarOptions();
opts.calendarName = $scope.model.title; // カレンダーの名称
opts.calendarColor = "#FF0000"; // カレンダーの色
// (2) カレンダーの作成
window.plugins.calendar.createCalendar(opts,function(msg){
$scope.$apply(function(){
$scope.message = "OK:" + msg;
});
},function(msg){
$scope.$apply(function(){
$scope.message = "ERROR :" + msg;
});
});
}
}
(1)ではカレンダーを作成するときのカレンダー名と色を指定するためのオブジェクトを作成し、(2)で実際にカレンダーを作成しています。
カレンダーの削除
カレンダーを削除する場合はリスト9のdeleteCalendarメソッドを使用し、引数は表6で示す項目が指定できます。
deleteCalendar(calendarName, successCallback,errorCallback)
| 変数名 | 型 | 説明 |
|---|---|---|
| calendarName | DOMString | 削除するカレンダー名 |
| successCallback | Function | 削除したときに呼ばれるコールバック関数 |
| errorCallback | Function | エラーが発生したときのコールバック関数 |
