私はcordovaを使用してiPhone用のphonegapアプリに取り組んでいます。ユーザーが特定のボタンをクリックしてイベントを追加したときに、iPhone のネイティブ カレンダーを開く必要があるシナリオを実装しようとしています。IPhone のカレンダー プラグインなどのタスクを実行するために、このリンクをたどりました。
彼らが指定したように、次の手順を実行しました。
- Plugins フォルダーに CalendarPlugin.m、CalendarPlugin.h を追加
- calendar.js ファイルを追加し、.html ファイルに参照を追加しました。
- 追加された依存関係 EventKit フレームワークと EventKitUI フレームワーク
- cordova.plist ファイルに calendarPlugin のキー/ペア値を持つプラグインを追加しました。
そして、私の HTML ファイルは次のようになります。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, target-densitydpi=device-dpi" />
<title>My Calendar Plugin</title>
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<script src="assets/Scripts/jquery-1.9.1.min.js"></script>
<script src="assets/Scripts/cordova-2.3.0.js"></script>
<script type="text/javascript" src="assets/Scripts/calendar.js"></script>
<script type="text/javascript" src="assets/Scripts/index.js"></script>
<script type="text/javascript">
function addEvent()
{
var cal = new calendarPlugin();
console.log("creating event");
var title= "My Sample Appt";
var location = "Los Angeles";
var notes = "This is a sample note";
var startDate = "2012-04-16 09:30:00";
var endDate = "2012-04-16 12:30:00";
var errCall = function(theerror) {
console.log("Error occurred - " + theerror);
}
var succCall = function(themessage) {
console.log("Success - " + themessage);
}
cal.createEvent(title,location,notes,startDate,endDate, succCall, errCall);
return false;
}
</script>
</head>
<body>
<input type="button" id="btnAddEvent" onclick="return addEvent();"/>
</body>
</html>
しかし、ネイティブ カレンダーを開いて、指定した日付にイベントを追加することができません。いくつかの StackOverflow の質問と Google グループのディスカッションを確認しましたが、うまくいきませんでした。github の問題セクションで指定されている iPhone 6 の更新に従って、calendarPlugin.m および calendarPlugin.h ファイルを変更しました。phonegap に calendarplugin を実装する際に間違った方向に進んだ場合は、ご案内ください。