iOS LBS地圖服務:高德地圖定位說明,lbs高德

來源:互聯網
上載者:User

iOS LBS地圖服務:高德地圖定位說明,lbs高德

iOS 11出現了四種定位隱私權設定 iOS 11不能定位問題 iOS 11定位隱私選擇提示框說明定位原因否則被拒 選擇使用應用期間定位螢幕頂部討厭的藍色閃爍提示框 如何不出現藍色定位閃爍提示框 高德地圖後台持續定位關鍵代碼

iOS 11出現了四種定位隱私權設定

Privacy - Location Always and When In Use Usage DescriptionPrivacy - Location Always Usage DescriptionPrivacy - Location When In Use Usage DescriptionPrivacy - Location Usage Description
iOS 11不能定位問題
//必須選上,不選上的話,其他三種定位隱私即使設定了也不會出現定位效果Privacy - Location Always and When In Use Usage Description

log日誌會出現如下錯誤提示

This app has attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain both NSLocationAlwaysAndWhenInUseUsageDescription and NSLocationWhenInUseUsageDescription keys with string values explaining to the user how the app uses this data

iOS 11定位隱私選擇提示框說明定位原因,否則被拒

填寫定位說明原因的位置

效果

選擇使用應用期間定位–螢幕頂部討厭的藍色閃爍提示框

開啟的後台持續定位,這個藍色的閃爍提示框是iOS系統內部增加的,誰也沒辦法去掉,除非沒有做後台持續定位,在選擇使用應用期間,APP進入後台就會出現這個藍色閃爍提示框

如何不出現藍色定位閃爍提示框

1.引導使用者選擇始終允許定位(始終允許或者不允許的情況下,後台持續定位不會出現藍色閃爍提示框)

2.使用蘋果內建的CLLocationManager,修改定位優先順序許可權

//使用期間定位- (void)requestWhenInUseAuthorization API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos);//始終允許定位- (void)requestAlwaysAuthorization API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(macos) __TVOS_PROHIBITED;

去設定預設定位優先順序為始終允許定位

3.不做後台持續定位功能!!!!!

高德地圖後台持續定位關鍵代碼

#import #import #import @interface AppDelegate ()//定位元據管理@property (nonatomic, strong) AMapLocationManager *locationManager;/** *  後台定位是否返回逆地理資訊,預設NO。 */@property (nonatomic, assign) BOOL locatingWithReGeocode;@end
#pragma mark - 後台定位和持續定位。- (void)initLocation{    self.locationManager = [[AMapLocationManager alloc] init];    self.locationManager.delegate = self;//遵守代理,實現協議    //設定定位最小更新距離方法如下,單位米。當兩次定位距離滿足設定的最小更新距離時,SDK會返回符合要求的定位結果。    self.locationManager.distanceFilter = 100;    //開啟持續定位    //iOS 9(不包含iOS 9) 之前設定允許後台定位參數,保持不會被系統掛起    [self.locationManager setPausesLocationUpdatesAutomatically:NO];    //iOS 9(包含iOS 9)之後新特性:將允許出現這種情境,同一app中多個locationmanager:一些只能在前台定位,另一些可在後台定位,並可隨時禁止其後台定位。    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 9) {        self.locationManager.allowsBackgroundLocationUpdates = YES;    }    //    如果需要持續定位返回逆地理編碼資訊    [self.locationManager setLocatingWithReGeocode:YES];    //開始持續定位    [self.locationManager startUpdatingLocation];}#pragma mark - 在回呼函數中,擷取定位座標,進行業務處理--傳遞給後台。- (void)amapLocationManager:(AMapLocationManager *)manager didUpdateLocation:(CLLocation *)location reGeocode:(AMapLocationReGeocode *)reGeocode{    NSLog(@"location:{緯度lat:%f; 經度lon:%f; accuracy:%f}", location.coordinate.latitude, location.coordinate.longitude, location.horizontalAccuracy);    if (reGeocode){//        NSLog(@"reGeocode:%@", reGeocode);        [self activityCodeWithLocation:location];    }}#pragma mark - 上傳經緯度到後台,記錄活動軌跡- (void)activityCodeWithLocation:(CLLocation *)location{    NSString *URLString = @"api/xxxxx";    NSDictionary *parameters = @{                                        @"xPosition":[NSString stringWithFormat:@"%f",location.coordinate.longitude],                                        @"yPosition":[NSString stringWithFormat:@"%f",location.coordinate.latitude]                                        };    [NetworkTool requestWithType:requestTypePOST URLString:URLString parametersAuthority:parameters success:^(id  _Nullable responseObject) {       ZYLog(@"%@",responseObject);    } failure:^(NSError * _Nonnull error) {        ZYLog(@"%@",error);    }];}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.