Zoeken…


Toestemming vragen

Uw app heeft geen toegang tot uw herinneringen en uw agenda zonder toestemming. In plaats daarvan moet de gebruiker een waarschuwing krijgen waarin hij / zij wordt gevraagd toegang te verlenen tot evenementen voor de app.

Importeer het EventKit framework om te beginnen:

Snel

import EventKit

Doelstelling C

#import <EventKit/EventKit.h>

Een EKEventStore

Vervolgens maken we een EKEventStore object. Dit is het object van waaruit we toegang hebben tot agenda- en herinneringsgegevens:

Snel

let eventStore = EKEventStore()

Doelstelling C

EKEventStore *eventStore = [[EKEventStore alloc] init];

Notitie

Een EKEventStore object maken elke keer dat we toegang moeten hebben tot de agenda, is niet efficiënt. Probeer het een keer te maken en gebruik het overal in uw code.

Beschikbaarheid controleren

Beschikbaarheid heeft drie verschillende statusen: Geautoriseerd, Geweigerd en Niet bepaald. Niet bepaald betekent dat de app toegang moet verlenen.

Om de beschikbaarheid te controleren, gebruiken we de methode authorizationStatusForEntityType() van het EKEventStore object:

Snel

switch EKEventStore.authorizationStatusForEntityType(EKEntityTypeEvent){
    case .Authorized: //...
    case .Denied: //...
    case .NotDetermined: //...
    default: break
}

Doelstelling C

switch ([EKEventStore authorizationStatusForEntityType:EKEntityTypeEvent]){
    case EKAuthorizationStatus.Authorized:
        //...
        break;
    case EKAuthorizationStatus.Denied:
        //...
        break;
    case EKAuthorizationStatus.NotDetermined:
        //...
        break;
    default:
        break;
}

Toestemming vragen

Zet de volgende code in NotDetermined geval:

Snel

eventStore.requestAccessToEntityType(EKEntityTypeEvent, completion: { [weak self] (userGrantedAccess, _) -> Void in
    if userGrantedAccess{
        //access calendar
    }
}

Toegang tot verschillende soorten agenda's

Toegang tot de reeks agenda's

Om toegang te krijgen tot de reeks EKCalendar 's, gebruiken we de methode calendarsForEntityType :

Snel

let calendarsArray = eventStore.calendarsForEntityType(EKEntityType.Event) as! [EKCalendar]

Door kalenders bladeren

Gewoon gebruik maken van een eenvoudig for lus:

Snel

for calendar in calendarsArray{
    //...
}

Toegang tot de kalendertitel en kleur

Snel

let calendarColor = UIColor(CGColor: calendar.CGColor)
let calendarTitle = calendar.title

Doelstelling C

UIColor *calendarColor = [UIColor initWithCGColor: calendar.CGColor];
NSString *calendarTitle = calendar.title;

Evenement toevoegen

Het gebeurtenisobject maken

Snel

var event = EKEvent(eventStore: eventStore)

Doelstelling C

EKEvent *event = [EKEvent initWithEventStore:eventStore];

Gerelateerde kalender, titel en datums instellen

Snel

event.calendar = calendar
event.title = "Event Title"
event.startDate = startDate //assuming startDate is a valid NSDate object
event.endDate = endDate //assuming endDate is a valid NSDate object

Evenement toevoegen aan agenda

Snel

try {
    do eventStore.saveEvent(event, span: EKSpan.ThisEvent)
} catch let error as NSError {
    //error
}

Doelstelling C

NSError *error;
BOOL *result = [eventStore saveEvent:event span:EKSpanThisEvent error:&error];
if (result == NO){
    //error
}


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow