iOS中如何获取地理位置及设置plist

  介绍

小编给大家分享一下iOS中如何获取地理位置及设置plist,希望大家阅读完这篇文章之后都有所收获、下面让我们一起去探讨吧!

<强> 1,在前台的时候获取地理位置信息

<强> iOS 8/9

在info.plist中配置NSLocationWhenInUseUsageDescription的值,否则上面的方法无效

调用.requestWhenInUseAuthorization()获取前台获取地理位置权限

调用.startUpdatingLocation ()

<强>代码示例

class  ViewController:, UIViewController  {   ,lazy  var  locateM :, CLLocationManager =, {   let 才能;locate =, CLLocationManager ()   locate.delegate =,才能自我   locate.requestWhenInUseAuthorization才能()   ,return 定位   ,}()   ,override  func  touchesBegan(触摸:Set,, withEvent 事件:,UIEvent ?), {   self.locateM.startUpdatingLocation才能()   ,}   }   extension  ViewController : CLLocationManagerDelegate {   ,func  locationManager(经理:,CLLocationManager,, didUpdateLocations 地点:,[CLLocation]), {   打印才能(“位置信息已经更新“)   ,}   }

<强> 2,前后台获取,但是后台获取的时候,屏幕上方有蓝框提示用户正在后台获取

<强> ios8

调用.requestWhenInUseAuthorization()获取前台获取地理位置权限

在info.plist中配置NSLocationWhenInUseUsageDescription的值,否则上面的方法无效

设置Capabilities> BackgroundModes>位置更新打对勾

调用.startUpdatingLocation ()

<强> ios9

调用.requestWhenInUseAuthorization()获取前台获取地理位置权限

设置.allowsBackgroundLocationUpdates=true (ios 9需要执行)

在info.plist中配置NSLocationWhenInUseUsageDescription的值,否则上面的方法无效

设置Capabilities> BackgroundModes>位置更新打对勾(如果第二步做了,此步没做,直接崩溃)

调用.startUpdatingLocation ()

ios8/ios9可以后台蓝框定位的代码示例:

class  ViewController:, UIViewController  {   ,lazy  var  locateM :, CLLocationManager =, {   let 才能;locate =, CLLocationManager ()   locate.delegate =,才能自我   locate.requestWhenInUseAuthorization才能()   if 才能;#可用(iOS  9.0,, *), {   ,,locate.allowsBackgroundLocationUpdates =,真的   ,,}   ,return 定位   ,}()   ,override  func  touchesBegan(触摸:Set,, withEvent 事件:,UIEvent ?), {         self.locateM.startUpdatingLocation才能()   ,}   }   extension  ViewController : CLLocationManagerDelegate {   ,func  locationManager(经理:,CLLocationManager,, didUpdateLocations 地点:,[CLLocation]), {   打印才能(“位置信息已经更新“)   ,}   }

<强> 3,后台获取,后台获取的时候,屏幕上方无蓝框提示

调用.requestAlwaysAuthorization()获取前台获取地理位置权限

在信息。plist中配置NSLocationAlwaysUsageDescription的值,否则上面的方法无效

设置.allowsBackgroundLocationUpdates=true (ios 9需要执行)

设置Capabilities> BackgroundModes>位置更新打对勾(本步骤在ios 8中可以不做设置,但是在ios9中如果第三步做了,而此步没有做,直接崩溃)

调用.startUpdatingLocation ()

<强>代码示例

class  ViewController:, UIViewController  {   ,lazy  var  locateM :, CLLocationManager =, {   let 才能;locate =, CLLocationManager ()   locate.delegate =,才能自我   locate.requestAlwaysAuthorization才能()   if 才能;#可用(iOS  9.0,, *), {   ,,locate.allowsBackgroundLocationUpdates =,真的   ,,}   ,return 定位   ,}()   ,override  func  touchesBegan(触摸:Set,, withEvent 事件:,UIEvent ?), {         self.locateM.startUpdatingLocation才能()   ,}   }   extension  ViewController : CLLocationManagerDelegate {   ,func  locationManager(经理:,CLLocationManager,, didUpdateLocations 地点:,[CLLocation]), {   打印才能(“位置信息已经更新“)   ,}   }

<强> 4,权限改变的通知

注意:在否认或者NotDetermined的状态下startUpdatingLocation,开始监听之后,当状态改变成允许的状态时,会直接进入监听状态,不必再次调用startUpdateingLocation

func  locationManager(经理:,CLLocationManager,, didChangeAuthorizationStatus 状态:,CLAuthorizationStatus), {   switch 才能;status  {   case 才能;.AuthorizedAlways:   ,才能打印(“始终“)   case 才能;.AuthorizedWhenInUse:   ,才能打印(“使用的时候,)   case 才能;.Denied:   ,才能打印(“拒绝“)   ,,if  CLLocationManager.locationServicesEnabled (), {   ,,,print(“真拒绝了“)   其他,,}{   ,,,print(“是关闭了定位服务“)   ,,}   case 才能;.NotDetermined:   ,才能打印(“第一次,尚未决定“)   case 才能;.Restricted:   ,才能打印(“没有权限的“)      null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

iOS中如何获取地理位置及设置plist