Я только начинаю с 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)
}
Как мне заставить запрос вернуться в приложение? ? При выходе и перезапуске появляется окно запроса, но оно не возвращается из настроек.
Заранее спасибо!