web-dev-qa-db-fra.com

Accès à l'emplacement - L'application ne demande pas à l'utilisateur l'autorisation d'accéder à l'emplacement - iOS 11

La description

L'application ne demande pas l'autorisation de l'utilisateur pour accéder à l'emplacement et pour obtenir l'état non déterminé

Fonctionne parfaitement jusqu'à iOS-10

var locationManager : CLLocationManager!

func getLocationDetails()
    {
        locationManager.delegate = self
        locationManager.desiredAccuracy = kCLLocationAccuracyBest
        locationManager.requestAlwaysAuthorization()
        locationManager.allowsBackgroundLocationUpdates = true
        locationManager.startUpdatingLocation()

    }

func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus)
    {
        if status == CLAuthorizationStatus.authorizedAlways || status == CLAuthorizationStatus.authorizedWhenInUse
        {
            locationManager.startUpdatingLocation()
        }
    }

    func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
    {


    }

Capture d'écran Plist  enter image description here

Modes de fond

 enter image description here

6
Alok

J'ai parcouru la documentation Apple et trouvé la solution à cette question.

Apple a modifié peu de directives pour obtenir l'emplacement de l'utilisateur.

Voici le lien vidéo: Apple - Quoi de neuf dans les technologies de localisation

Code complet d'accès aux emplacements dans Swift et Objective-C

Solution:

Nous devons maintenant ajouter trois clés d’authentification à Plist:

  1. NSLocationAlwaysAndWhenInUseUsageDescription
  2. NSLocationWhenInUseUsageDescription
  3. NSLocationAlwaysUsageDescription

Plist va ressembler à:  enter image description here L’écran du message d’authentification ressemblera à ceci:

 enter image description here

Code complet d'accès à l'emplacement

11
Alok

S'il vous plaît demander à l'autre permission aussi "Quand jamais en cours d'utilisation permission" et ajouter les deux permission sur le plist.

1
Ajay Singh Mehra

J'ai ajouté les deux Keys dans le fichier info.plist afin de demander des autorisations. Cependant, après avoir supprimé l'application et l'avoir ouverte à nouveau, le simulateur n'affichait pas l'alerte pour permettre à l'utilisateur de sélectionner une option.

Je pouvais faire réapparaître l'alerte après avoir supprimé l'application, puis ouvert la settings application et enfin réinstallé l'application.

J'espère que cela pourrait aider quelqu'un.