2016-11-25 4 views

ответ

3

Для получения текущего местоположения пользователя вы должны объявить:

let locationManager = CLLocationManager() 

В viewDidLoad():

// Ask for Authorisation from the User. 
    self.locationManager.requestAlwaysAuthorization() 

    // For use in foreground 
    self.locationManager.requestWhenInUseAuthorization() 

    if CLLocationManager.locationServicesEnabled() { 
     locationManager.delegate = self 
     locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters 
     locationManager.startUpdatingLocation() 
    } 

Затем в методе CLLocationManagerDelegate вы можете получить текущее местоположение пользователя координаты:

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 
    var locValue:CLLocationCoordinate2D = manager.location.coordinate 
    print("locations = \(locValue.latitude) \(locValue.longitude)") 
} 

Если пользователь отказал в местоположении, дайте ему возможность изменить местоположение pe прием от установок:

func locationManager(manager: CLLocationManager, didFailWithError error: NSError) { 
    print("error::: \(error)") 
    locationManager.stopUpdatingLocation() 
    let alert = UIAlertController(title: "Settings", message: "Allow location from settings", preferredStyle: UIAlertControllerStyle.Alert) 
    self.presentViewController(alert, animated: true, completion: nil) 
    alert.addAction(UIAlertAction(title: TextMessages().callAlertTitle, style: .Default, handler: { action in 
     switch action.style{ 
     case .Default: UIApplication.sharedApplication().openURL(NSURL(string: UIApplicationOpenSettingsURLString)!) 
     case .Cancel: print("cancel") 
     case .Destructive: print("destructive") 
     } 
    })) 
} 
0

Нет, вы можете просто напомнить им внутри приложения в рамках предупреждения, например: «Для лучшего использования мы предложим вам предоставить нам разрешения на использование вашего местоположения». И добавьте кнопку «Перейти к настройкам», которая перенаправит пользователя на разрешения на размещение для вашего приложения.

+0

это всерьез ответ? –

+0

@NumanKaraaslan Yep. И если вы внимательно прочитаете это, вы обнаружите, что это короткий вариант принятого ответа. – Lexorus

Смежные вопросы