美文网首页
iOS关于定位

iOS关于定位

作者: sunny_王 | 来源:发表于2016-08-09 13:57 被阅读39次

    在iOS8只有需要在info.plist中添加配置信息:

    定位分为永不、试用期间、始终:

    配置试用期间:NSLocationWhenInUseUsageDescription 、NSLocationWhenInUseDescription 对应为String类型

    配置始终:NSLocationAlwaysDescription、NSLocationAlwaysUsageDescription

    Privacy - Location Usage Description是对于应用使用位置信息去干什么的描述可以不写

    - (CLLocationManager *)manager

    {

    if (!_manager) {

    //初始化

    _manager = [[CLLocationManager alloc] init];

    _manager.delegate = self;

    // 每隔多米定位一次

    //        _manager.distanceFilter = 100;

    /**

    kCLLocationAccuracyBestForNavigation // 最适合导航

    kCLLocationAccuracyBest; // 最好的

    kCLLocationAccuracyNearestTenMeters; // 10m

    kCLLocationAccuracyHundredMeters; // 100m

    kCLLocationAccuracyKilometer; // 1000m

    kCLLocationAccuracyThreeKilometers; // 3000m

    */

    // 精确度越高, 越耗电, 定位时间越长

    _manager.desiredAccuracy = kCLLocationAccuracyBest;

    /** -------iOS8.0定位适配-------- */

    if([[UIDevice currentDevice].systemVersion floatValue] >= 8.0)

    {

    // 前台定位授权(默认情况下,不可以在后台获取位置, 勾选后台模式 location update, 但是 会出现蓝条)

    //            [_lM requestWhenInUseAuthorization];

    // 前后台定位授权(请求永久授权)

    // +authorizationStatus != kCLAuthorizationStatusNotDetermined

    // 这个方法不会有效

    // 当前的授权状态为前台授权时,此方法也会有效

    [_manager requestAlwaysAuthorization];

    }

    // 允许后台获取用户位置(iOS9.0)

    if([[UIDevice currentDevice].systemVersion floatValue] >= 9.0)

    {

    // 一定要勾选后台模式 location updates

    _manager.allowsBackgroundLocationUpdates = NO;

    }

    //        if ([_lM respondsToSelector:@selector(requestAlwaysAuthorization)])

    //        {

    //            [_lM requestAlwaysAuthorization];

    //        }

    }

    return _manager;

    }

    http://my.oschina.net/are1OfBlog/blog/420034      //地图开发

    相关文章

      网友评论

          本文标题:iOS关于定位

          本文链接:https://www.haomeiwen.com/subject/dqkdsttx.html