【问题标题】:How to get latitude and longitude in every 10 seconds when app in background mode in iOS swift 3当应用程序在iOS swift 3中处于后台模式时如何每10秒获取一次纬度和经度
【发布时间】:2017-11-07 11:57:46
【问题描述】:

我开发了一个用于公共汽车跟踪的应用程序,我想将司机的纬度和经度发送到后端服务器以更新我当前的位置。 但是当应用程序处于后台模式时,如何获得纬度和经度????

【问题讨论】:

    标签: swift3 core-location


    【解决方案1】:

    您需要将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",
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-08
      • 1970-01-01
      • 2014-12-31
      相关资源
      最近更新 更多