一、简介

  • iOS9.0如果当前处于前台授权状态,默认是不可以后台获取用户位置。

    • 如果在前台授权下,让其能获取到后台定位,该怎么办

      • 可以设置以下属性为YES,就可以继续获取后台位置,但是会出现蓝条
      • 使用注意:必须设置对应的后台模式,勾选后台模式:location updates
        @property(assign,nonatomic) BOOL allowsBackgroundLocationUpdates
  • 注意:iOS9.0 可以单次请求用户位置

    - (void)requestLocation
    // 成功调用,locations位置数组,元素按照时间排序
    -(void)locationManager:(nonnull CLLocationManager *)manager didUpdateLocations:(nonnull NSArray<CLLocation *> *)locations
    // 失败调用
    -(void)locationManager:(nonnull CLLocationManager *)manager didFailWithError:(nonnull NSError *)error
    • requestLocation 作用:

      • 按照定位精确度从低到高进行排序,逐个进行定位。如果获取到的位置不是精确度最高的那个,也会在定位超时后,通过代理告诉外界(必须实现代理的-locationManager:didFailWithError:方法)
      • 不能与startUpdatingLocation方法同时使用

二、实现步骤

1、 前台定位

  • 1.导入CoreLocation框架和对应的主头文件

     #import <CoreLocation/CoreLocation.h>
  • 创建CLLcationManager对象,并设置代理 请求前台定位授权,并配置KEY

    配置KEY .png
    _locationM = [[CLLocationManager alloc] init];
    _locationM.delegate = self;
    if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0)
    {
    [_locationM requestWhenInUseAuthorization];
    }
  • 3.调用CLLcationManager对象的startUpdatingLocation方法进行更新用户位置
    [_locationM startUpdatingLocation];
  • 4.实现代理方法,接收位置参数
    -(void)locationManager:(nonnull CLLocationManager *)manager didUpdateLocations:(nonnull NSArray<CLLocation *> *)locations

2、后台定位

  • 方案一:在APP处于前台定位授权场景下,勾选后台运行模式update locations (如下图) 并且,调用以下方法,设置允许后台定位

    勾选后台模式.png
    if ([[UIDevice currentDevice].systemVersion floatValue] >= 9.0) {
    _locationM.allowsBackgroundLocationUpdates = YES;
    }
    • 注意:如果APP处于后台,则会出现蓝条
  • 方案二:请求前后台定位授权,并配置KEY

    [_locationM requestAlwaysAuthorization];
转载:原文链接:http://www.jianshu.com/p/a9a94cbcb775

iOS iOS9.0 的CoreLocation定位的更多相关文章

  1. iOS开发拓展篇—CoreLocation定位服务

    iOS开发拓展篇—CoreLocation定位服务 一.简单说明 1.CLLocationManager CLLocationManager的常用操作和属性 开始用户定位- (void)startUp ...

  2. CoreLocation 定位

    前言: 本章会使用OC和Swift分别进行实现,需要了解Swift的小伙伴可以翻一下之前的博文 LBS和SoloMo(索罗门) LBS:基于位置的服务,根据定位展示周边美食.景点等信息(全称:Loca ...

  3. iOS开发——高级篇——地理定位 CoreLocation

    一.CoreLocation 在移动互联网时代,移动app能解决用户的很多生活琐事,比如周边:找餐馆.找KTV.找电影院等等导航:根据用户设定的起点和终点,进行路线规划,并指引用户如何到达 在上述应用 ...

  4. iOS - CoreLocation 定位

    前言 NS_CLASS_AVAILABLE(10_6, 2_0) @interface CLLocationManager : NSObject 1.CoreLocation 定位 配置 1.在 iO ...

  5. [iOS 利用MapKit和CoreLocation框架打造精简的定位和导航]

    运行效果:            一.利用<CoreLocation/CoreLocation.h>定位 创建变量 CLLocationManager *locationManager , ...

  6. ios开发之 -- stringByAddingPercentEscapesUsingEncoding方法被替换 iOS9.0

    最近在项目中,发现之前的一个方法已经不被建议使用了. 该方法名即题目中提到的: stringByAddingPercentEscapesUsingEncoding,这个方法是用来进行转码的,即将汉字转 ...

  7. IOS 弹框AlterView的使用(IOS8.0以前使用)UIAlertController(IOS9.0使用)

    #pragma mark - 代理方法 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath ...

  8. iOS开发系列--地图与定位

    概览 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式.例如你到了一个 ...

  9. iOS中的地图和定位

    文章摘自http://www.cnblogs.com/kenshincui/p/4125570.html#location  如有侵权,请联系删除. 概览 现在很多社交.电商.团购应用都引入了地图和定 ...

随机推荐

  1. 利用getBoundingClientRect方法实现简洁的sticky组件

    补充于2016-03-20: 本文实现有不足,不完美的地方,请在了解本文相关内容后,移步阅读<sticky组件的改进实现>了解更佳的实现. sticky组件,通常应用于导航条或者工具栏,当 ...

  2. js 模块化历程

    作者:吕大豹 网址:http://www.cnblogs.com/lvdabao/p/js-modules-develop.html 这是一篇关于js模块化历程的长长的流水账,记录js模块化思想的诞生 ...

  3. Sqlserver2005日志文件太大,使其减小的方法

    Sqlserver2005日志文件太大,使其减小的方法: 运行下面的三行 dbName为数据库名: backup log dbNamewith NO_LOG backup log dbNamewith ...

  4. 15天玩转redis —— 第二篇 基础的字符串类型

    我们都知道redis是采用C语言开发,那么在C语言中表示string都是采用char[]数组的,然后你可能会想,那还不简单,当我执行如下命令,肯定是直 接塞给char[]数组的. 如果你真的这么想的话 ...

  5. 【Java每日一题】20161103

    package Nov2016; import java.util.List; public class Ques1103 { public void method01(String[] array) ...

  6. swipe.js 2.0 轻量级框架实现mobile web 左右滑动

    属性总结笔记如下: <style> .swipe { overflow: hidden; //隐藏溢出 清楚浮动 visibility: hidden; //规定元素不可见 (可以设置,当 ...

  7. Data Structures/Algorithms 小甲鱼99讲笔记系列(1~~15讲)

    参考资料地址: http://www.icoolxue.com/ 1.数据结构中四种逻辑结构. ① 集合 集合中任何两个数据元素之间都没有逻辑关系,组织形式松散. ② 线性结构 线性结构中的 结点按逻 ...

  8. UVA 10090 Marbles 扩展欧几里得

    来源:http://www.cnblogs.com/zxhl/p/5106678.html 大致题意:给你n个球,给你两种盒子.第一种盒子每个盒子c1美元,可以恰好装n1个球:第二种盒子每个盒子c2元 ...

  9. JVM基本原理

    第一节 JVM内存模型 •堆栈简称栈,主要提供以下用途: –保存临时数据 –放置临时变量(局部.自动.堆栈) –保存调用现场 –方法返回值的传递 •堆主要提供以下用途: –存放对象(GC对象) –存放 ...

  10. Linux命令速查手册,超详细Linux命令教程

    一.常用命令速查 ls cd pwd cat more less tail head cp scp mv mkdir rmdir touch rm ps kill top free clear tre ...