請求許可

未經許可,你的應用無法訪問你的提醒和日曆。相反,它必須向使用者顯示警報,請求他/她授予對應用程式事件的訪問許可權。

要開始,請匯入 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
    }
}