在所有应用状态下获取用户当前位置(纬度/经度)并不总是仅在没有位置管理员委托的情况下需要我的应用时

时间:2016-04-08 11:22:05

标签: ios swift location health-monitoring

我正在制作看心跳应用程序,我希望当用户心率严重时,我们将获得他的当前位置(前景,后台和终止)并将其发送到我们的服务器。有没有办法让我只在那个位置获得用户位置。我不想每次都更新他的位置。

1 个答案:

答案 0 :(得分:2)

要获取用户位置,您必须声明:

let locationManager = CLLocationManager()

在您的控制器中。

然后,在viewDidLoad中,您必须请求位置并初始化CLLocationManager获取流程:

// 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 location:CLLocationCoordinate2D = manager.location.coordinate
    print("locations = \(location.latitude) \(location.longitude)")
}

在您的info.plist中,您必须添加NSLocationAlwaysUsageDescription并在请求定位时显示自定义提醒消息。

...欢呼声