Ermitteln Sie, ob Ihre App Zugriff auf den Kalender hat, ohne eine Anfrage zu starten?

8

Ich implementiere die Möglichkeit, benutzerdefinierte Ereignisse aus dem iOS-Kalender in meiner App hinzuzufügen und zu löschen. Ich habe die Anfrage für die Berechtigung zum Zugriff auf den Kalender für den Zeitpunkt, zu dem der Benutzer ein Ereignis erstellt hat, codiert, und es funktioniert großartig. Ich speichere das Ereignis auf einem Server, und ich erlaube ihnen später, das Ereignis zu löschen, und wenn das auftritt, lösche ich das Ereignis auch aus dem Kalender. Es ist möglich, dass jemand ein Ereignis außerhalb dieser App erstellen, die App öffnen und dann seinen Termin löschen kann, der vom Server abgerufen wird. In diesem Fall ist in Calendar kein Ereignis gespeichert. Es muss jedoch noch überprüft werden, ob eine Datei vorhanden ist, um zu versuchen, sie zu löschen. Dies schlägt fehl, da ich in diesem Fall nicht die Berechtigung des Benutzers für den Zugriff auf den Kalender angefordert habe.

Aber ich möchte den Benutzer beim Löschen nicht um Erlaubnis bitten, da der Benutzer keine Ahnung hat, warum die App auf den Kalender zugreifen möchte, weil er nie gewusst hat, dass er den Termin im Kalender speichern kann - sie haben ihn auf dem Kalender erstellt Website, und es gibt keinen Grund, sie sollten es zu diesem Zeitpunkt gewähren, weil es sowieso nichts tun wird.

Daher ist meine Frage, ob es möglich ist zu bestimmen, ob Ihre App momentan Zugriff auf den Kalender hat, ohne eine Anfrage zu machen, die dazu führt, dass dem Benutzer eine automatische Warnung angezeigt wird, falls die Erlaubnis nicht erteilt wird - siehe Anfragecode unten? Ich möchte nur nach dem Ereignis suchen, um es nur zu löschen, wenn ich bereits Zugriff auf den Kalender habe, und wenn nicht, werde ich nicht versuchen, etwas zu löschen.

%Vor%     
Joey 01.07.2014, 21:25
quelle

2 Antworten

19

Sie können [EKEventStore authorizationStatusForEntityType:EKEntityTypeEvent]

verwenden

Sie müssen überprüfen, ob diese Methode EKAuthorizationStatusAuthorized zurückgibt, um zu dem Schluss zu kommen, dass Ihre App derzeit Zugriff auf den Kalender für den angegebenen Entitätstyp hat.

Weitere Informationen finden Sie in der Klassenreferenz hier

    
ryumer 01.07.2014, 21:37
quelle
2
%Vor%     
grep 15.07.2017 09:58
quelle