感谢:https://github.com/ChenYilong/iOS9AdaptationTips#1-demo1_ios9%E7%BD%91%E7%BB%9C%E9%80%82%E9%85%8D_ats%E6%94%B9%E7%94%A8%E6%9B%B4%E5%AE%89%E5%85%A8%E7%9A%84https
iOS9新特性_更灵活的后台定位
【iOS9在定位的问题上,有一个坏消息一个好消息】坏消息:如果不适配iOS9,就不能偷偷在后台定位(不带蓝条,见图)!好消息:将允许出现这种场景:同一App中的多个location manager:一些只能在前台定位,另一些可在后台定位,并可随时开启或者关闭特定location manager的后台定位。
如果没有请求后台定位的权限,也是可以在后台定位的,不过会带蓝条:
如何偷偷在后台定位:请求后台定位权限:
// 1. 实例化定位管理器
_locationManager = [[CLLocationManager alloc] init];
// 2. 设置代理
_locationManager.delegate = self;
// 3. 定位精度
[_locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
// 4.请求用户权限:分为:⓵只在前台开启定位⓶在后台也可定位,
//注意:建议只请求⓵和⓶中的一个,如果两个权限都需要,只请求⓶即可,
//⓵⓶这样的顺序,将导致bug:第一次启动程序后,系统将只请求⓵的权限,⓶的权限系统不会请求,只会在下一次启动应用时请求⓶
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8) {
//[_locationManager requestWhenInUseAuthorization];//⓵只在前台开启定位
[_locationManager requestAlwaysAuthorization];//⓶在后台也可定位
}
// 5.iOS9新特性:将允许出现这种场景:同一app中多个location manager:一些只能在前台定位,另一些可在后台定位(并可随时禁止其后台定位)。
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 9) {
_locationManager.allowsBackgroundLocationUpdates = YES;
}
// 6. 更新用户位置
[_locationManager startUpdatingLocation];
但是如果照着这种方式尝试,而没有配置Info.plist,100%你的程序会崩溃掉,并报错:
*** Assertion failure in -[CLLocationManager setAllowsBackgroundLocationUpdates:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/CoreLocationFramework_Sim/CoreLocation-1808.1.5/Framework/CoreLocation/CLLocationManager.m:593
对应的 Info.plist 的XML源码是:
<key>NSLocationAlwaysUsageDescription</key>
<string>微博@iOS程序犭袁 请求后台定位权限</string>
<key>UIBackgroundModes</key>
<array>
<string>location</string>
</array>
相关推荐
iOS_iPadOS_16_Beta_Profile.mobileconfig
iOS_9_by_Tutorials 介绍iOS9的一些新技术
iOS_iPadOS_14_Beta_Profile.mobileconfig
Herms_IOS_rev5_installer
iOS_11_by_Tutorials_v1.1d电子书和代码 ,因为太大(100M+)没有上传权限(只能传70M左右)所以用的网盘地址,自己下载,如果失效请评论留言,仅用于交流学习,3Q
iOS_iPadOS_17_Public_Profile-1.mobileconfig
umeng_ios_social_sdk_4.1_custom
ios 录屏开发 支持 ios9 ios10 ios11
iOS 11 by tutorials 源码(第9至15章) http://download.csdn.net/user/xrick
iOS_防截屏_基于DRM隐藏敏感信息
iOS_11_by_Tutorials_v...Discover the new features for developers in iOS 11, such as ARKit, Core ML, Vision, drag & drop, document browsing, the new changes in Xcode 9 and Swift 4 — and much, much more.
IOS 后台的可持续定位,遵循苹果的机制,后台会10分钟唤醒一次,给10S的执行时间,然后关闭。这样一直循环。
iOS 14新特性与适配要点,swift中iOS的适配要点,以及ios14的一些新特性,iOS 14新特性与适配要点,swift中iOS的适配要点,以及ios14的一些新特性
iOS_9_Swift_Programming_Cookbook swift非常棒的一本书
iOS_10_by_Tutorials_v1.0 英文版
一个iOS上使用的股票K线图图表库YKLineChartView源码
iOS_6_by_Tutorials_Chinese_1_6.pdf
对iOS9新特性介绍及解决方案!iOS 9 新特性 1.网络适配-Https HTTP请求失败 解决了编译问题后,程序跑起来了,却发现很多网络请求失败。这是因为iOS9默认不支持HTTP请求,需要改用更安全的HTTPS(默认用TLS 1.2)...
iOS_11_by_Tutorials_v1.1.pdf
提供ArcGIS_Runtime_SDK_iOS_100_2_1示例及SDK,因我的等级不高,所以大文件没办法现在,SDK的链接也在压缩包里,自行下载,链接永久有效