[ios]iOS8 定位

参考:http://www.2cto.com/kf/201410/342392.html

http://blog.csdn.net/yongyinmg/article/details/39521523

 http://blog.devzeng.com/blog/ios8-corelocation-framework.html

iOS8的定位问题,执行操作之后,不会调用到定位之后的delegate方法中,然后我查看了一下手机上对应用的定位权限界面,发现我的应用的访问用户的地理位置的权限是空的,之后查了相关信息,得到以下解决方案:

1. Appdelegate中:

//h
CLLocationManager *locationManager;

//m
    [UIApplication sharedApplication].idleTimerDisabled = TRUE;

   if([CLLocationManager locationServicesEnabled])//检查定位服务是否可用
    {
      if(!locationManager)
      {
        locationManager = [[CLLocationManager alloc] init];
      }
      [locationManager requestAlwaysAuthorization];        //NSLocationAlwaysUsageDescription
        [locationManager requestWhenInUseAuthorization];     //NSLocationWhenInUseDescription
        locationManager.delegate = self;
      locationManager.distanceFilter = 0.5;
      locationManager.desiredAccuracy = kCLLocationAccuracyBest;
    }
[locationManager startUpdatingLocation];

 

2. 在 info.plist里加入:

在Info.plist中加入两个缺省没有的字段

  • NSLocationAlwaysUsageDescription  允许在前台获取GPS的描述

  • NSLocationWhenInUseUsageDescription  允许在后台获取GPS的描述

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

Application requires IPhone environment  yes

 

 

posted @ 2015-06-23 10:46  南水之源  阅读(284)  评论(0编辑  收藏  举报