【发布时间】:2017-11-07 11:57:46
【问题描述】:
我开发了一个用于公共汽车跟踪的应用程序,我想将司机的纬度和经度发送到后端服务器以更新我当前的位置。 但是当应用程序处于后台模式时,如何获得纬度和经度????
【问题讨论】:
标签: swift3 core-location
我开发了一个用于公共汽车跟踪的应用程序,我想将司机的纬度和经度发送到后端服务器以更新我当前的位置。 但是当应用程序处于后台模式时,如何获得纬度和经度????
【问题讨论】:
标签: swift3 core-location
您需要将CoreLocation 框架与NSTimer 一起使用。
1:在您的项目中添加CoreLocation 框架。
2:允许"Location Update"在"BackgroundModes"
2:在 YOURViewController 或 AppDelegate 中您要访问的位置添加:
import CoreLocation
class YourViewController: UIViewController, CLLocationManagerDelegate {
// Location Manager
let locManager = CLLocationManager()
override func viewDidLoad() {
locManager.delegate = self
// 300 = 300 seconds. Change time according to you. This is repeating funciton.
let _ = Timer.scheduledTimer(timeInterval: TimeInterval(300), target: self, selector: #selector(self.getLocation), userInfo: nil, repeats: true)
}
func startUpdatingBugs() {
locManager.delegate = self
locManager.desiredAccuracy = kCLLocationAccuracyBest;
locManager.distanceFilter = 10; // meters
locManager.startUpdatingLocation()
}
现在添加代表以获取位置并上传到服务器或其他任何东西。
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
var geoLocationLongitude = location?.coordinate.longitude ?? "na",
var geoLocationLattitude = location?.coordinate.latitude ?? "na",
}
【讨论】: