高德地圖 6.8.0或以上版本 開啓後臺定位bash
若是APP中使用了高德地圖而且具備後臺定位功能,而後在3D地圖升級到6.8.0或以上版本的時候,會發現新安裝的APP沒有定位受權提示框!!!而且在日誌中發現[AMapLocationKit] 要在iOS 11及以上版本使用後臺定位服務, 須要實現amapLocationManager:doRequireLocationAuth: 代理方法
查看SDK的更新日誌:ui
高德地圖iOS SDK(3D地圖) V6.8.0 2019-04-16
解決問題
針對App Store關於「申請後臺定位權限」的新審覈要求,地圖SDK內去掉定位的requestAlwaysAuthorization請求,用戶可經過mapViewRequireLocationAuth回調來設置requestAlwaysAuthorization;
修復多實例下設置路況顏色可能會致使context衝突的問題;
修復瓦片圖讀取已損壞數據致使的crash問題;
解決delegate的warning問題。
複製代碼
實現mapViewRequireLocationAuth方法spa
- (void)mapViewRequireLocationAuth:(CLLocationManager *)locationManager
{
[locationManager requestAlwaysAuthorization];
}
複製代碼
若是隻是那麼簡單的解決方法,就不會浪費那麼多時間去定位了。還有重要一點就是,設置delegate必須在設置showsUserLocation以前:代理
_mapView.delegate = self;
_mapView.showsUserLocation = YES;
_mapView.userTrackingMode = MAUserTrackingModeFollow;
複製代碼
若是delegate設置放此兩個屬性設置的後面,那麼一直會提示」[AMapLocationKit] 要在iOS 11及以上版本使用後臺定位服務, 須要實現amapLocationManager:doRequireLocationAuth: 代理方法「。而且麼有任何提示也不會定位。日誌
下載了3D地圖的Demo後才恍然大悟,一直在嘗試不一樣的方案,可是一直在提示*[AMapLocationKit] 要在iOS 11及以上版本使用後臺定位服務, 須要實現amapLocationManager:doRequireLocationAuth: 代理方法*。code
// END 但願可以幫到有這個問題的小夥伴。cdn