高德地圖6.8.0定位修改的修復方法

高德地圖

高德地圖 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: 代理方法「。而且麼有任何提示也不會定位。日誌

Done

下載了3D地圖的Demo後才恍然大悟,一直在嘗試不一樣的方案,可是一直在提示*[AMapLocationKit] 要在iOS 11及以上版本使用後臺定位服務, 須要實現amapLocationManager:doRequireLocationAuth: 代理方法*。code

// END 但願可以幫到有這個問題的小夥伴。cdn

相關文章
相關標籤/搜索