iOS Demande de permission


Exemple

Votre application ne peut pas accéder à vos rappels et à votre calendrier sans autorisation. Au lieu de cela, il doit afficher une alerte à l'utilisateur, lui demandant d'accorder l'accès aux événements pour l'application.

Pour commencer, importez le framework EventKit :

Rapide

import EventKit

Objectif c

#import <EventKit/EventKit.h>

Faire un EKEventStore

Ensuite, nous EKEventStore un objet EKEventStore . C'est l'objet à partir duquel nous pouvons accéder aux données du calendrier et des rappels:

Rapide

let eventStore = EKEventStore()

Objectif c

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

Remarque

Faire un objet EKEventStore chaque fois que nous avons besoin d'accéder au calendrier n'est pas efficace. Essayez de le faire une fois et utilisez-le partout dans votre code.

Vérifier les disponibilités

La disponibilité a trois statuts différents: Autorisé, Refusé et Non déterminé. Non déterminé signifie que l'application doit accorder l'accès.

Pour vérifier la disponibilité, nous utilisons la méthode authorizationStatusForEntityType() de l'objet EKEventStore :

Rapide

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

Objectif c

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

Demande de permission

Placez le code suivant dans le cas NotDetermined :

Rapide

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