天天看点

iOS 关于iOS8地图定位问题

今天把xcode升级到了6.0.1,心里很美啊,终于可以把bate版本的删除掉了!我是个整洁的人有强迫证你懂得,不喜欢重复冗杂的东西。升级完后继续码吧,结果发现百度地图无法定位了!本来就不太熟悉地图sdk的开发这下可咋整!

iOS 关于iOS8地图定位问题

一贯作风百度、谷歌一顿搜索!最后找到了方法。在这记录一下吧,也供需要的童鞋学习一下~ >>>>>>>>>>>>>>>>>专业分割线>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 在IOS8中定位功能新增了两个方法:

- (void)requestWhenInUseAuthorization __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_8_0);

- (void)requestAlwaysAuthorization __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_8_0);

这两个新增的方法导致之前写的程序,在iOS8运行会出现定位功能无法正常使用!(这句话是网上一贴子说的我也不清楚,爱咋咋地!)

正确让ios8定位的方法来了:

1.在Info.plist表里面添加两个变量

NSLocationAlwaysUsageDescription

NSLocationWhenInUseUsageDescription

(这两个字段没什么特别的意思,就是自定义提示用户授权使用地理定位功能时的提示语)

iOS 关于iOS8地图定位问题

2.添加代码:

CLLocationManager  *locationManager = [[CLLocationManager alloc]init];    locationManager.delegate = self;    

[locationManager requestAlwaysAuthorization];   

locationManager.desiredAccuracy = kCLLocationAccuracyBest;  

locationManager.distanceFilter = kCLDistanceFilterNone;    

[locationManager startUpdatingLocation];

调用代理:

- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status {   

switch (status) {        

case kCLAuthorizationStatusNotDetermined:           

if ([locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) {               [locationManager requestWhenInUseAuthorization];            

}           

break;        

default:            

break;   

  }

}

3.这样就可以打开地图定位功能了!

最近在做基于百度Map定位及路线轨迹的功能!完成后,也发出来供大家学习使用,尽情期待吧~

iOS 关于iOS8地图定位问题