我有一个通用的 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,但是如何呢?我有适用于 iOS 6 的 SDK 附带的 xCode 4.5。有什么建议吗?