地图定位3-iOS9.0之后定位配置

iOS9.0 之后定位

1.前台定位(相对于iOS8.0 前台定位一样,没有变化)

1.创建位置管理者CLLocationManager,并设置代理

2.开始定位,调用方法

locationM.startUpdatingLocation()

3.在CLLocationManagerDelegate的代理方法中获取用户位置信息

4.主动请求前台定位授权,

 locationM.requestWhenInUseAuthorization()

5.在info.plist中填写对应的key(一定要填key)

key :NSLocationWhenInUseUsageDescription

2.后台定位

方案一:(需要在前台定位基础上,即先将上面5步做完)

效果:

  • 当在后台获取到用户的位置时,会在顶部显示一个蓝条,提醒用户这个app在不断的获取你的位置信息
  • 当用户点击了这个蓝条,会打开对应的app

条件:(在前台授权)

  • 1.请求前台定位授权,requestWhenInUseAuthorization()
  • 2.需要开启后台模式 Location updates
  • 3.iOS9.0后增加操作,设置属性为true
    设置allowsBackgroundLocationUpdates属性为true
if #available(iOS 9.0, *) {
    locationM.allowsBackgroundLocationUpdates = true
}

方案二:(方案二和iOS8.0 一样)

  • 效果: 无论是否勾选后台模式, 都可以获取位置信息. 而且无论前后台, 都不会出现蓝条

条件:

  • 1.开启前后台定位授权,调用函数 requestAlwaysAuthorization()

  • 2.在info.plist中填写对应的key(一定要填key)

    key : NSLocationAlwaysUsageDescription

locationM.requestAlwaysAuthorization()
  • 只要开启前后台定位授权,默认情况下, 就可以在后台获取用户位置信息, 不需要勾选后台模式location updates

你可能感兴趣的:(地图定位3-iOS9.0之后定位配置)