iOS8中定位服務的變化(CLLocationManager協議方法不響應,沒法回掉GPS方法,不出

iOS8中定位服務的變化(CLLocationManager協議方法不響應,沒法回掉GPS方法,不出現獲取權限提示)

最近在寫一個LBS的項目的時候,由於考慮到適配iOS8,就將項目遷移到Xcode6.0.1上,出現了不能正常獲取定位服務權限的問題。spa

self.manger = [[CLLocationManager alloc]init];
self.manger.distanceFilter = kCLDistanceFilterNone; // metersself.manger.delegate = self;
[self.manger requestAlwaysAuthorization];
self.manger.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
[self.manger startUpdatingLocation];

以上是iOS8以前的調用方法,當用戶開啓App的時候,會主動詢問是否容許開啓定位服務權限,如今在iOS8中,不管是模擬器仍是真機,都不進行提示,通過一番查閱官方文檔-->LocationAwarenessPGIntroduction 發現,Apple在iOS8中增強了隱私訪問權限的控制,必須調用新的方法來獲取用戶的容許code

  [self.manager requestWhenInUseAuthorization];

而且在info.plist文件中增長orm

NSLocationWhenInUseUsageDescription  BOOL YES
NSLocationAlwaysUsageDescription         string 「提示描述」
兩個字段,在iOS8中才能進行正確的獲取服務權限ip

相關文章
相關標籤/搜索