請求許可
未經許可,你的應用無法訪問你的提醒和日曆。相反,它必須向使用者顯示警報,請求他/她授予對應用程式事件的訪問許可權。
要開始,請匯入 EventKit
框架:
迅速
import EventKit
Objective-C
#import <EventKit/EventKit.h>
製作一個 EKEventStore
然後,我們製作一個 EKEventStore
物件。這是我們可以訪問日曆和提醒資料的物件:
迅速
let eventStore = EKEventStore()
Objective-C
EKEventStore *eventStore = [[EKEventStore alloc] init];
注意
每次我們需要訪問日曆時製作
EKEventStore
物件效率不高。嘗試製作一次並在程式碼中的任何地方使用它。
檢查可用性
可用性有三種不同的狀態:授權,拒絕和未確定。Not Determined 表示應用需要授予訪問許可權。
為了檢查可用性,我們使用 EKEventStore
物件的 authorizationStatusForEntityType()
方法:
迅速
switch EKEventStore.authorizationStatusForEntityType(EKEntityTypeEvent){
case .Authorized: //...
case .Denied: //...
case .NotDetermined: //...
default: break
}
Objective-C
switch ([EKEventStore authorizationStatusForEntityType:EKEntityTypeEvent]){
case EKAuthorizationStatus.Authorized:
//...
break;
case EKAuthorizationStatus.Denied:
//...
break;
case EKAuthorizationStatus.NotDetermined:
//...
break;
default:
break;
}
請求許可
將以下程式碼放在 NotDetermined
案例中:
迅速
eventStore.requestAccessToEntityType(EKEntityTypeEvent, completion: { [weak self] (userGrantedAccess, _) -> Void in
if userGrantedAccess{
//access calendar
}
}