Wenn wir Standortdienste in einer Anwendung verwenden, erhalten wir eine iOS-Warnung, die besagt, dass die Anwendung versucht, den aktuellen Standort zu verwenden - Zulassen / Nicht zulassen.
Haben wir einen Delegierten-Rückruf für diese Tasten?
Ich möchte mit "Nicht zulassen" umgehen.
Sie haben keinen direkten Zugriff auf diese Warnung.
Wenn der Benutzer "Nicht zulassen" drückt oder wenn die App ansonsten keine Berechtigung zur Verwendung von Standortdiensten hat, ruft CLLocationManager
locationManager:didFailWithError:
für seinen Delegaten auf. Die Fehlerdomäne lautet kCLErrorDomain
und der Fehlercode lautet kCLErrorDenied
.
Sie können die Aktion einfach wie folgt auswählen:
%Vor%Stellen Sie sicher, dass Sie den Stellvertreter des Standortmanagers festlegen.
Sie sollten auch überprüfen, ob der Nutzer vor dem Start des Standortmanagers Standortdienste für Ihre App zugelassen hat. Verwenden Sie die CLLocationManager
-Klassenmethode locationServicesEnabled
, um dies zu überprüfen.
Hier ist das Dokument:
locationServicesEnabled
Gibt einen booleschen Wert zurück, der angibt, ob Standortdienste auf dem Gerät aktiviert sind.
+ (BOOL)locationServicesEnabled
Rückgabewert JA, wenn die Standortdienste aktiviert sind oder NEIN, wenn sie nicht aktiviert sind.
Diskussion Der Benutzer kann Standortdienste in der Anwendung "Einstellungen" aktivieren oder deaktivieren, indem er den Schalter unter Einstellungen & gt; Allgemein & gt; Standortdienste.
Sie sollten den Rückgabewert dieser Methode überprüfen, bevor Sie Ortsaktualisierungen starten, um festzustellen, ob der Benutzer für das aktuelle Gerät Standortdienste aktiviert hat. Wenn diese Methode NO zurückgibt und Sie trotzdem Standortaktualisierungen starten, fordert das Core Location Framework den Benutzer mit einem Bestätigungsfenster auf, ob die Standortdienste erneut aktiviert werden sollen.
Tags und Links objective-c iphone cocoa-touch cllocationmanager