转载

CoreLocation Authorization in iOS8+

1. CoreLocationManager 中新增的方法

iOS8在位置获取权限上做了更细的划分,也就是说,用户可以选择允许app在后台使用位置信息、在使用期间使用位置信息或者不允许使用位置信息。

因此,在 CLLocationManager 中添加了如下两个方法:

  • requestWhenInUseAuthorization() : 向用户请求只在app使用期间获取位置信息的权限。
  • requestAlwaysAuthorization() : 向用户请求app在后台使用位置信息的权限。

    locationManager = CLLocationManager() 

    locationManager.delegate = self

    locationManager.desiredAccuracy = kCLLocationAccuracyBest

    locationManager.requestAlwaysAuthorization()

    locationManager.startUpdatingLocation()

2.提供说明信息

CoreLocation 需要给用户展示一个信息,告诉他们为什么需要使用他们的位置信息。这个展示的信息,叫“usage string”,可以在info.plist文件中设置。

然而,下拉列表中找到的唯一相关的 NSLocationUsageDescription 貌似不起什么作用。

CoreLocation Authorization in iOS8+

因为 NSLocationUsageDescription 在iOS8及iOS8+中都被忽略掉了。同时,有两个新的key被引入进来。

  • NSLocationAlwaysUsageDescription :前后台均允许使用
  • NSLocationWhenInUseUsageDescription : 只允许前台使用

貌似Xcode并没有更新下拉列表中的内容,所以只能手动输入key了。

CoreLocation Authorization in iOS8+

在iPhone中相应的设置信息可以在这里看到:

CoreLocation Authorization in iOS8+

CoreLocation Authorization in iOS8+

哦了,K06-Where结束了。回归地球。

Ref:

部分内容翻译自:

https://www.shinobicontrols.com/blog/ios8-day-by-day-day-34-corelocation-authorization
原文  http://www.calios.gq/2016/03/02/CoreLocation-Authorization-in-iOS8/
正文到此结束
Loading...