iOS9.0 之后定位
1.前臺(tái)定位(相對(duì)于iOS8.0 前臺(tái)定位一樣,沒(méi)有變化)
1.創(chuàng)建位置管理者CLLocationManager
,并設(shè)置代理
2.開始定位,調(diào)用方法
locationM.startUpdatingLocation()
3.在CLLocationManagerDelegate
的代理方法中獲取用戶位置信息
4.主動(dòng)請(qǐng)求前臺(tái)定位授權(quán),
locationM.requestWhenInUseAuthorization()
5.在info.plist中填寫對(duì)應(yīng)的key(一定要填key)
key :NSLocationWhenInUseUsageDescription
2.后臺(tái)定位
方案一:(需要在前臺(tái)定位基礎(chǔ)上,即先將上面5步做完)
效果:
- 當(dāng)在后臺(tái)獲取到用戶的位置時(shí),會(huì)在頂部顯示一個(gè)藍(lán)條,提醒用戶這個(gè)app在不斷的獲取你的位置信息
- 當(dāng)用戶點(diǎn)擊了這個(gè)藍(lán)條,會(huì)打開對(duì)應(yīng)的app
條件:(在前臺(tái)授權(quán))
- 1.請(qǐng)求前臺(tái)定位授權(quán),requestWhenInUseAuthorization()
- 2.需要開啟后臺(tái)模式 Location updates
- 3.
iOS9.0后增加操作
,設(shè)置屬性為true
設(shè)置allowsBackgroundLocationUpdates
屬性為true
if #available(iOS 9.0, *) {
locationM.allowsBackgroundLocationUpdates = true
}
方案二:(方案二和iOS8.0 一樣)
- 效果: 無(wú)論是否勾選后臺(tái)模式, 都可以獲取位置信息. 而且無(wú)論前后臺(tái), 都不會(huì)出現(xiàn)藍(lán)條
條件:
1.開啟前后臺(tái)定位授權(quán),調(diào)用函數(shù) requestAlwaysAuthorization()
-
2.在info.plist中填寫對(duì)應(yīng)的key(一定要填key)
key :
NSLocationAlwaysUsageDescription
locationM.requestAlwaysAuthorization()
- 只要開啟前后臺(tái)定位授權(quán),默認(rèn)情況下, 就可以在后臺(tái)獲取用戶位置信息, 不需要勾選后臺(tái)模式location updates