当前位置: 首页 > 科技观察

iOS9适配系列教程:后台定位

时间:2023-03-17 20:36:43 科技观察

【iOS9在定位问题上有坏消息也有好消息】坏消息:不适配iOS9就不能后台偷偷定位(没有蓝酒吧,见图片)!好消息:这种场景将被允许:同一个App中的多个位置管理器:有的只能位于前台,有的可以位于后台,具体位置管理器的后台位置可以在后台开启或关闭任何时候。如果没有请求后台定位权限,也可以在后台定位,但是会出现蓝色条:如何在后台偷偷定位:请求后台定位权限://1。实例化位置manager_locationManager=[[CLLocationManageralloc]init];//2.设置代理_locationManager.delegate=self;//3.定位精度[_locationManagersetDesiredAccuracy:kCLLocationAccuracyBest];//4.请求用户权限:分为://注:建议只请求其中一个?和?。如果两个权限都需要,只请求?。//??请求?的权限,系统不会请求?的权限,只会在下次启动app时请求?if([[[UIDevicecurrentDevice]systemVersion]floatValue]>=8){//[_locationManagerrequestWhenInUseAuthorization];//?只在前台启用定位[_locationManagerrequestAlwaysAuthorization];//?也可以位于后台}//5.iOS9新特性:将允许这种场景:同一个app中有多个位置管理器:有的只能位于前台,有的可以位于后台(和可以随时禁止其后台定位)。if([[[UIDevicecurrentDevice]systemVersion]floatValue]>=9){_locationManager.allowsBackgroundLocationUpdates=YES;}//6.更新用户位置[_locationManagerstartUpdatingLocation];但是如果你在不配置Info.plist的情况下尝试这种方式,你的程序100%会崩溃并报错:***Assertionfailurein-[CLLocationManagersetAllowsBackgroundLocationUpdates:],/BuildRoot/Library/Caches/com.apple.xbs/Sources/CoreLocationFramework_Sim/CoreLocation-1808.1.5/Framework/CoreLocation/CLLocationManager.m:593配置Info.plist如下:Info.plist对应的XML源码为:【责任编辑:陈庆祥TEL:(010)68476606】