iOS8.0之前,之后,iOS9.0之后在獲取用戶位置信息的區(qū)別

iOS 8.0 之前獲取用戶的位置信息

  • 默認情況下,只能在前臺獲取用戶位置信息,如果在后臺也想要獲取用戶的位置信息,需要開啟后臺模式。

iOS 8.0之后,iOS 9.0之前想要獲取用戶的位置信息

  • 需要主動請求授權
    • 前臺定位授權,必須在info.plist文件中配置對應的key
      • NSLocationWhenInUseUsageDescription
    • 默認情況下只能在前臺獲取用戶的位置信息,如果想要在后臺也獲取用戶的位置信息,需要開啟:后臺模式,勾選,location updates
      • 在后臺獲取用戶的位置信息,會在頂部顯示藍色橫幅,實時提示用戶該APP在獲取你的位置信息,點擊藍色橫幅則會打開該APP
    • 前后臺定位授權,必須在info.plist文件中配置對應的key
      • NSLocationAlwaysUsageDescription
    • 在前臺和后臺都能夠獲取用戶的位置信息,在后臺獲取用戶的位置信息,不需要開啟后臺模式

iOS 9.0 之后獲取用戶的位置信息

  • 前臺定位授權,和iOS 8.0之后的基本操作一樣,想要在后臺獲取用戶的位置信息,需要滿足兩個條件
    • 需要開啟后臺模式: location updates
    • 必須允許后臺獲取用戶的位置信息
      • 注意點:如果允許后臺獲取用戶的位置信息,必須勾選后臺模式,否則會造成程序崩潰
  • 前后臺定位授權,和iOS 8.0之后的操作一樣
import UIKit
import CoreLocation

class ViewController: UIViewController {
    
    lazy var locationM : CLLocationManager = {
        let locationM = CLLocationManager()
        locationM.delegate = self
        if #available(iOS 8.0, *) { 
            
            //前臺的定位授權請求申請
            locationM.requestWhenInUseAuthorization()
            if #available(iOS 9.0, *) {
                //允許在后臺運行 
            locationM.allowsBackgroundLocationUpdates = true
                    
            }

            //前后臺的定位授權申請
            // iOS8.0之后的前后臺定位授權沒有任何變化
            //locationM.requestAlwaysAuthorization()    
        }
        
        return locationM
    }()
    
    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        
        // 開始定位
        // 調(diào)用這個方法,就會不斷地獲取用戶的位置信息
        locationM.startUpdatingLocation()
    }

}

extension ViewController : CLLocationManagerDelegate {
    /// 當獲取到用戶的位置的時候會來到該方法
    ///
    /// - Parameters:
    ///   - manager: 位置管理者
    ///   - locations: 位置數(shù)組
    func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
        print("定位到了")
    }
}
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,368評論 25 708
  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,245評論 4 61
  • 簡介 在移動互聯(lián)網(wǎng)時代,移動app能解決用戶的很多生活瑣事,比如 周邊:找餐館、找KTV、找電影院等等 導航:根據(jù)...
    JonesCxy閱讀 1,260評論 1 1
  • TED視頻:Diana Nyad 《永不放棄》 我們清楚知道“常立志不如立長志”,“做事應該追求十全十美”,可是事...
    楠ancy閱讀 514評論 0 1
  • 這周完成的 在這周完成了教師端和學生端的0.85版本,這周的主要工作集中在性能的優(yōu)化和UI細節(jié)的完善上,其中,在...
    heartshapebox閱讀 243評論 0 0