CoreLocation Authorization in iOS8+
來自: 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:
本文由用戶 cdduanwx 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!