私はユニバーサル iOS アプリを持っており、iOS 6 と互換性を持つように努力しています。私は Cordova / Phonegap フレームワークを使用しているので、私のアプリは HTML、CSS、および JS です。GitHub で入手できる Cordova 用の calenderPlugin を使用していますが、iOS 6 より前では問題なく動作しています。
問題はここから始まります: Apple は、iOS 6 以降では、カレンダーやリマインダーで操作を行う前に、ユーザーから許可を与える必要があると付け加えました。そのためのサンプルコードは次のとおりです。
EKEventStore *eventStore = [[EKEventStore alloc] init];
if( [self checkIsDeviceVersionHigherThanRequiredVersion:@"6.0"] ) {
[eventStore requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
if (granted){
//---- codes here when user allow your app to access theirs' calendar.
}else
{
//----- codes here when user NOT allow your app to access the calendar.
}
:
:
}];
}
//**********************************************************************************
// Below is a block for checking is current ios version higher than required version.
//**********************************************************************************
- (BOOL)checkIsDeviceVersionHigherThanRequiredVersion:(NSString *)requiredVersion
{
NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
if ([currSysVer compare:requiredVersion options:NSNumericSearch] != NSOrderedAscending)
{
return YES;
}
return NO;
}
もちろん、EventKit.Framework と EventKitUI.Framework を追加しました。さて、iOS 6 の開発のために、iOS6 SDK に付属の xCode 4.5 をダウンロードしてインストールしました。
xCode はこのメソッド requestAccessToEntityType を見つけられず、定数 EKEntityTypeEvent も利用できません。
iOS 6 の EventKit.Framework が不足しているようですが、どうすればよいですか? SDK for iOS 6 に付属の xCode 4.5 があります。何か提案はありますか?