Как заставить пользователя разрешить услуги локации и пуш-уведомления? - PullRequest
0 голосов
/ 16 июня 2019

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

Этот код я запускаю от нажатия кнопоки т. д. в приложении.Но я хочу, чтобы при запуске пользователь вообще не мог перейти к приложению, если ему не разрешены местоположения!

...