Запрос местоположения не появляется после включения в настройках - PullRequest
0 голосов
/ 06 ноября 2019

Я только начинаю с SwiftUI и разработки приложений. В моем приложении я проверяю CLAuthorizationStatus. Если статус запрещен или ограничен, я показываю предупреждение и направляю пользователя к настройкам.

Когда пользователь выбирает авторизацию всегда и возвращается в приложение, он работает нормально и получает геолокацию.

Но когда пользователь выбирает «Никогда» или «Всегда спрашивать» в настройках и возвращается в приложение, я хотел бы заставить приложение перезагрузить и перепроверить разрешения, потому что если пользователь выбирает «Всегда спрашивать»приложение должно делать именно это, а это не так. В этом случае он остается ".notDetermined".

Вот код из моего класса LocationManager:

class LocationManager: NSObject, ObservableObject {

    .....

    override init() {
        super.init()
        self.locationManager.delegate = self
        self.locationManager.desiredAccuracy = kCLLocationAccuracyBest
        self.locationManager.requestWhenInUseAuthorization()
        self.locationManager.startUpdatingLocation()
    }

....
}
func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
        self.locationStatus = status

        switch status {
            case .notDetermined:
                break
            case .authorizedWhenInUse, .authorizedAlways:
              if CLLocationManager.locationServicesEnabled() {
                  self.locationManager.startUpdatingLocation()
                }
            case .restricted, .denied:
                showPermissionAlert()
        default: break
        }

        print(#function, statusString)
    }

Как мне заставить запрос вернуться в приложение? ? При выходе и перезапуске появляется окно запроса, но оно не возвращается из настроек.

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...