美文网首页
iOS(定位一)后台定位和前台定位权限设置

iOS(定位一)后台定位和前台定位权限设置

作者: 双双依依 | 来源:发表于2016-10-11 16:50 被阅读0次

一次定位及设置前台授权和后台定位

1.  首先导入头文件           #import <CoreLocation/CoreLocation.h> 

2. 添加位置管理者属性    @property(nonatomic,strong)CLLocationManager*mgr;

3. 创建定位管理者 统一管理定位服务    _mgr= [[CLLocationManageralloc]init];

4. 请求授权  (三种方法: 第一种是前台授权  第二种是前后台同时授权但是用户反感

                          第三种是设置前台定位及设置代码和info.plist设置后台定位)

          4.1  仅限于在前台使用时授权

                  1) 配置info.plist相关key (NSLocationWhenInUseUsageDescription)

                  2)做好低版本适配

              if([_mgrrespondsToSelector:@selector(requestWhenInUseAuthorization)]){

                //当应用在使用时可以使用定位服务(仅限于应用在前台使用时授权,一旦程  序到后台就停止定位)

            [_mgrrequestWhenInUseAuthorization];

           }

       4.2 应用始终使用定位服务(应用在前台和后台都能获取到定位服务)——这种方式用户反感

           1)配置info.plist相关key(NSLocationAlwaysUsageDescription)

           2)做好低版本适配

           if([_mgrrespondsToSelector:@selector(requestWhenInUseAuthorization)]){

        1.2.2应用始终使用定位服务(应用在前台和后台都能获取到定位服务) //用户反感

    //反感是因为授权提示是 :@"应用未打开时,允许定位"

                 [_mgrrequestAlwaysAuthorization];

          }

       4.3 应用开启临时后台(设置后台运行模式) (常用模式)

                1) 配置info.plist相关key ( 这里需要新加一个选项 选择: Required background modes->打开items->选取App registers for location updates(定位后台运行的模式))  — 在ios8 之前只要设置这个就行了

              2) 在ios8以后就是ios9的一个新特性需要再加上一句代码 才能执行这个功能

 IOS9新特性要求代码允许mgr执行后台运行模式

_mgr.allowsBackgroundLocationUpdates=YES;//这是获取后台定位 前台授权还需要再设置 要是不要后台定位 这个就不要设置

注意 : 这个时候 用户反感的那个就要取消掉不用,但是前台的授权模式还是要打开


5. 设置代理   同时遵守协议   

1.3获取数据设置代理  <遵守协议 :CLLocationManagerDelegate>

_mgr.delegate=self;

6. 开启定位               [_mgrstartUpdatingLocation];

7. 实现CLLocationManagerDelegate 代理方法

当更新位置时调用    底层是异步操作定位

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

CLLocation : 位置对象包含了位置信息这个里面有很多其他的属性可以设置  点击头文件查看即可

CLLocation*location = locations.lastObject;

NSLog(@"%f,%f",location.coordinate.latitude,location.coordinate.longitude);

停止定位

[_mgr stopUpdatingLocation];

}

 写到这里 基本的 定位(后台前台)都讲完了   还有其他的设置优化持续定位 如下: 

     优化持续定位  : (经纬度不变的情况下 就不用一直不断的去请求)

 1.  距离筛选器  减少不必要的回调

_mgr.distanceFilter = 10;

2  设置期望精确度  减少耗电量(减少能耗)

_mgr.desiredAccuracy=kCLLocationAccuracyBestForNavigation;//这个还有很多枚举值可以根据自己需要的进行选取

  谢谢! !  希望能帮到大家

相关文章

  • iOS(定位一)后台定位和前台定位权限设置

    一次定位及设置前台授权和后台定位 1. 首先导入头文件 #import

  • iOS11定位权限的问题

    在iOS10以前,定位权限如果只需要在前台定位,在 Info.plist 添加定位权限申请 如果还需要在后台定位,...

  • 地图定位笔记

    iOS8.0之前前台定位 iOS8.0之后的前后台定位 前台定位设置如下,做版本判断.iOS8之前与之后有两个变化...

  • iOS-定位

    一、前言 二、定位权限 1、iOS8.* -前台定位 -需要在info.plist配置NSLocationWhen...

  • IOS后台定位以及位置上传方案

    IOS后台定位以及位置上传方案 iOS定位原理和使用建议 iOS后台持续定位并定时上传 iOS 通过定位获取常驻后...

  • iOS定位和地图

    一.定位 1.iOS8以后前台定位 A.代码 B.配置信息Info.plist 2.iOS8以后后台定位 A.代码...

  • IOS开发常用的代码块

    1.使用定位时需要设置的权限如果需要仅在前台定位,你在调用startUpdatingLocation 前需要调用 ...

  • swift3.0 后台定位功能

    公司需求后台定位,间隔五分钟后台上传坐标信息,这里主要把后台定位功能整理了一下。plist 的权限设置 这里就不具...

  • Android Q 适配

    后台定位权限 AndroidQ新引入了后台定位权限,是危险权限需要代码动态申请 这个权限必须配合下面两个权限使用,...

  • 地图定位2-iOS8.0定位配置

    iOS8.0 之后定位 1.前台定位 1.创建位置管理者CLLocationManager,并设置代理 2.开始定...

网友评论

      本文标题:iOS(定位一)后台定位和前台定位权限设置

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