Yosemite の Javascript 自動化の新しいサポートを使用して iCal を操作する方法を理解するのに本当に苦労しています。私は OOP の経験があまりないので、そこに問題があるかもしれません。
指定したカレンダーに新しいイベントを追加するためのコードを教えてもらえますか? そこからリバースエンジニアリングして、操作方法を理解できるでしょう。
ありがとう
アップデート
これが私が試しているコードです..
// -- perform adding to iCal
// -- select "Test" calendar
theCalendar = iCal.calendars.Test;
events = theCalendar.events;
// -- load in the events
stringifiedData = Safari.doJavaScript("localStorage.getItem('theEvents');", {
in: Safari.windows[0].tabs[0]})
// -- parse data back to js object
theEvents = JSON.parse(stringifiedData);
// -- loop through events
for (var key in theEvents) {
var obj = theEvents[key];
// -- set vars
theDate = obj['date'];
theDescription = obj['description'];
theSummary = obj['summary'];
theLocation = obj['location'];
theStartTime = theDate + " " + obj['startTime'];
theEndTime = theDate + " " + obj['endTime'];
// -- create event object
theEvent = iCal.Event({
description: theDescription,
summary: theSummary,
location: theLocation,
startDate: theStartTime,
endDate: theEndTime
});
// -- get the last index event
last = events.length;
// -- insert it into iCal
events.push(theEvent);
}
私が受け取っているエラー..
Error on line 68: TypeError: undefined is not an object (evaluating 'events.push(theEvent)')
アップデート
私は問題を理解しました。日付のフォーマットが間違っていました..それらは単なる文字列でした. したがって、それらを日付オブジェクトに変換することを確認し、次を使用して正常に挿入できました
events[last] = theEvent;