0

J'utilise google map dans mes App.I ont mis cela dans info.plistL'application ne demande pas l'autorisation de service de localisation WhenInUse lors de l'installation?

Confidentialité - Emplacement En cas d'utilisation Utilisation Description de

et dans mon code (HomeScreen) Je vérifie comme ça aussi :

if (CLLocationManager.locationServicesEnabled()) 
    { 
     locationManager = CLLocationManager() 
     locationManager.delegate = self 
     locationManager.desiredAccuracy = kCLLocationAccuracyBest 
     locationManager.requestAlwaysAuthorization() 
     locationManager.startUpdatingLocation() 
    } else{ 
     let alertController = UIAlertController(title: "Oops !!" , message: "Location service seems to be disabled. Please enable from Settings -> Privacy ->LocationService.", preferredStyle: .Alert) 
     let defaultAction = UIAlertAction(title: "OK", style: .Default, handler: nil) 
     alertController.addAction(defaultAction) 
     self.presentViewController(alertController, animated: true, completion: nil) 
    } 

Mais il ne demande pas la permission lors de l'installation de l'application pour la première fois. Toute aide appricierait.

+0

êtes-vous ajoutez : // www.apple.com/DTDs/PropertyList-1.0.dtd "> Pour pouvoir détecter si vous conduisez ou non, nous devons avoir accès à votre emplacement. dans votre fichier .plist? –

+0

juste définir ce code dans votre fichier appdelegates.swift –

+0

@HimanshuMoradiya Quel code à ajouter dans AppDelagate ?? –

Répondre

0
import CoreLocation 
class AppDelegate: CLLocationManagerDelegate{ 

var locationManager: CLLocationManager! 
var currentCoordinate: CLLocationCoordinate2D? 

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
     self.setupLocationManager() 
     return true 
} 

func setupLocationManager(){ 

     locationManager = CLLocationManager() 
     locationManager?.delegate = self 
     self.locationManager?.requestAlwaysAuthorization() 
     locationManager?.desiredAccuracy = kCLLocationAccuracyNearestTenMeters 
     locationManager?.startUpdatingLocation() 
    } 

// Below method will provide you current location. 
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 

    if currentCoordinate == nil { 
     currentCoordinate = locations.last?.coordinate 
     locationManager?.stopMonitoringSignificantLocationChanges() 
     let locationValue:CLLocationCoordinate2D = manager.location!.coordinate 

     print("locations = \(locationValue)") 
     //currentCoordinate use this location Coordinate in your whole app. 
     locationManager?.stopUpdatingLocation() 
    } 
} 

// Below Mehtod will print error if not able to update location. 
func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) { 
    print("Error") 
} 

Si une requête en fonction de ma réponse alors dites-moi.

+0

parfait cela fonctionne –

+0

@AnushkaMadushan cela fonctionne alors pourquoi vous donner le vote? –

+0

désolé pour cela, comment puis-je le changer –

2

Vous définissez la clé Info.plist pour accéder à l'emplacement lorsque l'utilisateur utilise l'application (c'est-à-dire lorsqu'il est au premier plan), mais dans votre code, vous demandez la permission lorsque l'application est en cours d'exécution (c.-à-d. .

Vous devez décider de ce que vous voulez. Si vous voulez toujours pouvoir accéder à l'emplacement de l'utilisateur, modifiez la clé Info.plist. Si vous souhaitez accéder à l'emplacement de l'utilisateur lorsque votre application est au premier plan, modifiez la demande d'autorisation à requestWhenInUseAuthorization() à la place.

0

A partir de iOS 10 en avant nous devons donner les autorisations de l'emplacement dans le fichier .plist comme suit enter image description here

et il suffit de cocher activer ou non les services de localisation de votre application dans Settings.settings -> votre nom d'application -> Permettre emplacement Accès. Ne devrait jamais être sélectionné.

Supprimez votre application de l'appareil et réinstallez l'application, puis il vous demandera l'autorisation de localisation.