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
貌似不起什么作用。
因为 NSLocationUsageDescription
在iOS8及iOS8+中都被忽略掉了。同时,有两个新的key被引入进来。
NSLocationAlwaysUsageDescription
:前后台均允许使用 NSLocationWhenInUseUsageDescription
: 只允许前台使用 貌似Xcode并没有更新下拉列表中的内容,所以只能手动输入key了。
在iPhone中相应的设置信息可以在这里看到:
哦了,K06-Where结束了。回归地球。
部分内容翻译自:
https://www.shinobicontrols.com/blog/ios8-day-by-day-day-34-corelocation-authorization