【发布时间】:2019-11-22 11:40:46
【问题描述】:
即使应用被用户杀死,我也想跟踪用户位置。我尝试了以下代码,但在关闭应用程序时无法正常工作。
override func viewDidLoad() {
super.viewDidLoad()
locationManager.delegate = self
self.checkUsersLocationServicesAuthorization()
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.allowsBackgroundLocationUpdates = true
locationManager.requestAlwaysAuthorization()
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()
}
extension ViewController: CLLocationManagerDelegate {
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
for location in locations {
let objr = ["lat": "\(location.coordinate.latitude)",
"logn": "\(location.coordinate.longitude)",
"date": self.getCurrentDateAndTime()]
self.saveToCoreDataAndFetchBack(objr as NSDictionary)
//self.TriggerNotification()
}
}
}
【问题讨论】:
-
I want to track user location even when app is killed by the user.是什么原因? -
频繁间隔之间的位置跟踪。了解员工是否在工作地点。
-
您可以为此实现访问跟踪或地理围栏等功能(Apple 有这方面的文档)。用户终止应用是有原因的,他们不希望您持续跟踪他们的位置。
-
另外,您可能不希望您的位置管理器对象存在于视图控制器中。您将需要使用合适的定位模式,例如重大的定位变化,并在
didFinishLaunching中编写适当的代码来处理定位的重新启动。
标签: ios swift cllocationmanager