2017-07-29 10 views
0

Ich erstelle eine App, die den aktuellen Standort des Benutzers verwendet. Bei der ersten Ausführung, nachdem der Benutzer aufgefordert wurde, der App die Verwendung des Standorts zu erlauben oder zu verweigern, möchte ich Dinge tun, wenn der Benutzer die Schaltfläche "Zulassen" gedrückt hat. Gibt es eine Möglichkeit zu erkennen, wann der Benutzer die Schaltfläche "Zulassen" gedrückt hat?So erkennen Sie, wenn der Benutzer das "Zulassen" gedrückt hat, wenn der Benutzerstandort angefordert wurde

Antwort

3

Swift 3.0

können Sie unter Delegatmethode verwenden die Benutzer zu erfassen Position autorisiert ist oder nicht. Wenn der Benutzer den Standort zugelassen hat, gibt er den Status .authorizedAlways oder .authorizedWhenInUse zurück.

func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) { 

} 
0

Sie haben keinen direkten Zugriff auf diese Warnung.

Wenn der Benutzer auf "Nicht zulassen" klickt, ruft CLLocationManager locationManager: didFailWithError: auf seinem Delegaten auf. Die Fehlerdomäne wird kCLErrorDomain sein und der Fehlercode wird kCLErrorDenied sein.

Sie können den Status überprüfen, ob Benutzer erlaubt ist oder nicht.

let notificationType = UIApplication.shared.currentUserNotificationSettings?.types 
     if notificationType?.rawValue == 0 { 
      self.openPushNotificationDialog() //user denied or don't allowed 
     } 

Offizielle Link zur Meldung https://developer.apple.com/documentation/usernotifications/unauthorizationstatus

0

Für Swift 3X

Sie können authorizedalways klicken erlauben oder verbieten dann diese Methode aufrufen und einige Informationen über diese.

func locationManager(manager: CLLocationManager!, didChangeAuthorizationStatus status: CLAuthorizationStatus) { 
if status == CLAuthorizationStatus.NotDetermined { 
    locationManager.requestWhenInUseAuthorization() 
} 
} 
Verwandte Themen