CoreLocation Authorization in iOS8+

cdduanwx 8年前發布 | 13K 次閱讀 iOS開發 Objective-C開發

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