iOS8定位问题解决方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS8定位问题解决方案相关的知识,希望对你有一定的参考价值。

原文  http://blog.csdn.net/nextstudio/article/details/40050095

1、修改info

新增Key: NSLocationAlwaysUsageDescription 和 NSLocationWhenInUseUsageDescription ,这两个Key的值将分别用于描述应用程序始终使用和使用期间使用定位的说明,这些说明将显示在用户设置中。 

info新增键值对如下 : 

技术分享

技术分享

应用程序说明参见微信:

技术分享

2、CLLocationManager初始化

iOS8CLLocationManager新增实例方法 requestWhenInUseAuthorization和requestAlwaysAuthorization,需要在初始化时根据需要调用。

 

if([CLLocationManager locationServicesEnabled]){
  self.locationManage = [[CLLocationManager alloc] init];
  self.locationManage.delegate = self;
//定位频率,每个多少米定位一次 self.locationManage.distanceFilter = 200;
//设置定位精度 self.locationManage.desiredAccuracy = kCLLocationAccuracyBestForNavigation;//kCLLocationAccuracyBest;
//启动跟踪定位
[self.locationManage startUpdatingLacation]; if (SYSTEM_VERSION >= 8.0) { //使用期间 [self.locationManage requestWhenInUseAuthorization]; //始终 //or [self.locationManage requestAlwaysAuthorization] } }

3、代理(  CLLocationManagerDelegate  )

//定位失败

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error

{

    [MBHUDUntil hideAllHUDForView:self.window];

    

    if (![SharedData shareInstance].isMB == NO) {

        [MBHUDUntil showHUDToWindowWithText:@"地图定位失败,请确认您已允许本程序开启定位服务"];

    }

}

 

// 跟踪定位代理方法,每次位置发生变化即会执行(只要定位到相应位置)

-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{

     //如果不需要实时定位,使用完即使关闭定位服务

  [_locationManager stopUpdatingLocation];

}

新增下面的代理方法:

- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
{
  switch (status) {
    case kCLAuthorizationStatusNotDetermined:
      if ([self.locationManage respondsToSelector:@selector(requestAlwaysAuthorization)])
      {
        [self.locationManage requestWhenInUseAuthorization];
      }
      break;
    default:
    break;
  }

}

以上是关于iOS8定位问题解决方案的主要内容,如果未能解决你的问题,请参考以下文章

定位服务在 ios8 中不起作用

iOS之地理位置及定位系统 -- 入门笔记

ipa上传反馈请修改应用程序info.plist文件中相关用途字符串问题

swift语言IOS8开发战记18 NavigationItem

iOS 上的标准定位服务电池消耗

线上排障技巧 | 动态修改LOGGER级别