Как мы можем заставить пользователя разрешить разрешения, требуемые приложению?Я хочу, чтобы пользователь разрешил как службы определения местоположения, так и push-уведомления, но в данный момент, если пользователь нажимает «не разрешать», он может получить доступ ко всем функциям.
Я хотел бы зациклить всплывающее сообщение, где пользователь должен нажать кнопку Разрешить.Это означает, что если пользователь нажимает «не разрешать», всплывающее окно будет отображаться до тех пор, пока пользователь не выберет «разрешить».
Может быть, есть библиотека с такой функциональностью?
РЕДАКТИРОВАТЬ:
мой код прямо сейчас:
func checkIfUserEnabledLocation(){
if !hasLocationPermission() {
let alertController = UIAlertController(title: "Location Permission Required", message: "Please enable location permissions in settings.", preferredStyle: UIAlertController.Style.alert)
let okAction = UIAlertAction(title: "Settings", style: .default, handler: {(cAlertAction) in
//Redirect to Settings app
UIApplication.shared.open(URL(string:"App-Prefs:root=Privacy&path=LOCATION")!)
})
let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertAction.Style.cancel)
alertController.addAction(cancelAction)
alertController.addAction(okAction)
self.present(alertController, animated: true, completion: nil)
}
}
func hasLocationPermission() -> Bool {
var hasPermission = false
if CLLocationManager.locationServicesEnabled() {
switch CLLocationManager.authorizationStatus() {
case .notDetermined, .restricted, .denied:
hasPermission = false
case .authorizedAlways, .authorizedWhenInUse:
hasPermission = true
default:
print("hello")
}
} else {
hasPermission = false
}
return hasPermission
}
Этот код я запускаю от нажатия кнопоки т. д. в приложении.Но я хочу, чтобы при запуске пользователь вообще не мог перейти к приложению, если ему не разрешены местоположения!