CoreLocation Authorization in iOS8+
cdduanwx
9年前
来自: http://www.calios.gq/2016/03/02/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 貌似不起什么作用。
因为 NSLocationUsageDescription 在iOS8及iOS8+中都被忽略掉了。同时,有两个新的key被引入进来。
- NSLocationAlwaysUsageDescription :前后台均允许使用
- NSLocationWhenInUseUsageDescription : 只允许前台使用
貌似Xcode并没有更新下拉列表中的内容,所以只能手动输入key了。
在iPhone中相应的设置信息可以在这里看到:
哦了,K06-Where结束了。回归地球。
Ref:
</div>