IOS/AndroidのJavaScript/jQuery Mobile/PhoneGapアプリからカレンダーイベントを作成するにはどうすればよいですか?
PhoneGapプラグインなどはありますか?公式リポジトリには何も表示されませんでした。
古い質問だと思いますが、今は plugin があります。短所はありますが、機能します。執筆時点では、次の機能をサポートしています。
コード例は次のとおりです。
var startDate = new Date(2014,2,15,18,30,0,0,0);
var endDate = new Date(2014,2,15,19,30,0,0,0);
var title = "My Nice event";
var newTitle = "My new Nice event";
var location = "Home";
var notes = "Some notes about this event.";
var success = function(message) {
alert("Success: " + JSON.stringify(message));
};
var error = function(message) {
alert("Error: " + message);
};
window.plugins.calendar.createEvent(title,location,notes,startDate,endDate,success,error);
window.plugins.calendar.modifyEvent(title,location,notes,startDate,endDate,newTitle,location,notes,startDate,endDate,success,error);
window.plugins.calendar.deleteEvent(newTitle,location,notes,startDate,endDate,success,error);
以下のコメントによると、 iOS用のiCalファイルとAndroid用のvcsファイルを作成できるようになりました 。ブラウザ/デバイスのスニッフィングが必要になるか、ユーザーに選択肢を提供しますが、少なくとも可能である必要があります。
現在、PhoneGap 開発ロードマップ にはカレンダーのサポートは含まれていません。しかし、それに対する多くの要求があります。 " W3CカレンダーAPIに続くカレンダープラグイン "というこの投稿を参照してください。これは PhoneGap-Calendar-Pluginプロジェクト を指し、Androidの初期カレンダーサポートが含まれています。
IOSカレンダーへのイベントの追加は、最新のAPIを使用すると非常に簡単です。ただし、それを行うには、独自のプラグインを作成する必要があります。
これはプラットフォーム固有であるため、公式のPhoneGapプラグインが登場するまでには時間がかかります。
AndroidとiOSのプラグインを見つけましたが、JavaScript APIが同じではないため、両方のシステムに異なるコードを記述するか、別のレイヤーを追加する必要があります。また、それらは最新ではなく、Cordova2.2.0で実行するには修正が必要になります。さらに悪いことに、ドキュメントはちょっと短いです:
DchengのAndroidプラグイン カレンダーイベントを作成、削除、検索できますが、完全に古く、そのままでは機能しません。 Android 4.0には Calendar Provider があり、作業が簡単になりますが、それでも適切なプラグインが見つかりませんでした。 jbajor はイベントのみを追加でき、 twistandshout はイベントのみを検索できます。
Felixactv8のiOSプラグイン カレンダーイベントを作成、削除、検索できます。 iOSにはイベントIDがないため、イベントの検索が楽しくなることに注意してください。 著者の説明 xcodeに必要な2つのフレームワークを追加する方法:
iPhoneカレンダーは、EventKit.frameworkとEventKitUI.frameworkの2つのフレームワークを使用します。
xcodeアイコンをクリックすると、プロジェクトアイコンとターゲットアイコンが表示されます。ターゲットアイコンをクリックしてから、ビルドフェーズをクリックします。 [バイナリとライブラリをリンクする]のドロップダウンをクリックします。ウィンドウの下部にあるプラス記号をクリックして、両方のフレームワークを検索します。両方のフレームワークを追加し、プロジェクトを再構築して実行します。