1、在前台的时候获取地理位置信息
ios 8/9
在info.plist中配置NSLocationWhenInUseUsageDescription的值,否则上面的方法无效
调用.requestWhenInUseAuthorization()获取前台获取地理位置权限
调用.startUpdatingLocation()
代码示例
class ViewController: UIViewController {
lazy var locateM : CLLocationManager = {
let locate = CLLocationManager()
locate.delegate = self
locate.requestWhenInUseAuthorization()
return locate
}()
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.locateM.startUpdatingLocation()
}
}
extension ViewController : CLLocationManagerDelegate{
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
print("位置信息已经更新")
}
}
2、前后台获取,但是后台获取的时候,屏幕上方有蓝框提示用户正在后台获取
ios8
调用.requestWhenInUseAuthorization()获取前台获取地理位置权限
在info.plist中配置NSLocationWhenInUseUsageDescription的值,否则上面的方法无效
设置Capabilities>BackgroundModes>Location Updates 打对勾
调用.startUpdatingLocation()
ios9
调用.requestWhenInUseAuthorization()获取前台获取地理位置权限
设置 .allowsBackgroundLocationUpdates = true (ios 9需要执行)
在info.plist中配置NSLocationWhenInUseUsageDescription的值,否则上面的方法无效
设置Capabilities>BackgroundModes>Location Updates 打对勾 (如果第二步做了,此步没做,直接crash)
调用.startUpdatingLocation()
ios8/ios9可以后台蓝框定位的代码示例:
class ViewController: UIViewController {
lazy var locateM : CLLocationManager = {
let locate = CLLocationManager()
locate.delegate = self
locate.requestWhenInUseAuthorization()
if #available(iOS 9.0, *) {
locate.allowsBackgroundLocationUpdates = true
}
return locate
}()
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.locateM.startUpdatingLocation()
}
}
extension ViewController : CLLocationManagerDelegate{
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
print("位置信息已经更新")
}
}
3、后台获取,后台获取的时候,屏幕上方无蓝框提示
调用.requestAlwaysAuthorization()获取前台获取地理位置权限
在info.plist中配置NSLocationAlwaysUsageDescription的值,否则上面的方法无效
设置 .allowsBackgroundLocationUpdates = true (ios 9需要执行)
设置Capabilities>BackgroundModes>Location Updates 打对勾 (本步骤在ios 8中可以不做设置,但是在ios9中如果第三步做了,而此步没有做,直接crash)
调用.startUpdatingLocation()










