美文网首页
iOS 后台提交定位信息

iOS 后台提交定位信息

作者: ThinkerH | 来源:发表于2017-03-01 22:09 被阅读284次

转载请注明出处:hualei的博客www.hualeihl.com


最近公司业务需要,针对一款iOS软件,要求程序进入后台依然可以持续提交定位信息,所以研究了一下。

我们知道,iOS程序进入后台后正常进程只能保持3分钟,3分钟后就会被挂起,所以要想实现后台持续定位,就要防止进程被挂。

查阅苹果官方关于后台的文档发现,有3类APP具有后台运行不会被挂起,种类如下:

  • Audio
  • Location/GPS
  • VoIP

这里我用到了第二种,即 Location/GPS

具体实现步骤

1 . 首先info.plist文件里面配置如下:

info.plist文件里面配置 info.plist文件里面配置

2 . 在工程的TARGETS中的capabilities里设置Background Modes如下:

capabilities设置

3 . 然后创建一个继承自CLLocationManager的单例,创建单例对象,并注意要设置其两个熟悉值如下,如果不设置则无法实现后台持续定位

    if ([_locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) {
        [_locationManager requestAlwaysAuthorization];
    }

    if ([_locationManager respondsToSelector:@selector(allowsBackgroundLocationUpdates)]) {
        _locationManager.allowsBackgroundLocationUpdates = YES;
    }

之后,再设置CLLocationManager实例的代理以及实现代理方法,运行程序并让程序进入后台运行,会发现程序一直在按设置的条件定位并回调代理方法而不会被挂起。


在查阅官方文档时,还看到一段话,截取如下

官方文档截取

其中红框部分翻译过来就是:

当程序不在运行时,如果此时发生了一个监听范围的越界事件,系统会在后台自动唤醒应用(或重启动),以处理该事件。这种情况下,launchOptions字典会传递给application:didFinishLaunchingWithOptions:方法,其中会包含UIApplicationLaunchOptionsLocationKey键,用以标记APP因为一个位置相关的事件而启动。在这个重新启动的过程中,你必须重新创建位置管理器(location manager对象),并指定代理以处理该位置事件。

这里我们可以看到,即使APP不在运行,我们也可以通过设置位置范围监听(CLRegion)来实现唤醒APP并处理相关位置事件。

不过这里要强调的是,APP中使用这些API在提交APP Store时苹果会进行相关审核,看应用是否有必要使用这些API,如果没必要,苹果会拒绝,所以想使用这一方式实现除定位外的别的目的不是很容易。

相关文章

  • iOS 后台提交定位信息

    转载请注明出处:hualei的博客www.hualeihl.com 最近公司业务需要,针对一款iOS软件,要求程序...

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

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

  • iOS定位和地图

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

  • HTML5之表单验证

    前台提交信息到后台,一般用form表单提交,也可以用ajax提交信息到后台(提交信息一般不用cookie和sess...

  • iOS专题链接

    iOS 安全保护 适用于 iOS 9.3 或更高版本 快速定位代码修改者等提交信息 深度解析浏览器中输入 URL ...

  • iOS 后台定位

    后台定位实现步骤:(涉及类CLLocationManager) 1.使用API:-requestAlwaysAut...

  • iOS后台定位

    app提审后,失败。内容如下: 2017年11月4日 上午7:15发件人 Apple 4 Performance:...

  • iOS 后台定位

    苹果对iOS的规范性在提升了app的品质的同时也带来了对开发者的限制。翻阅了各种官方文档和资料,得出结论如下:1、...

  • 地图定位笔记

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

  • IOS 后台定位上传

    APP开发中经常需要使用到后台定位上传功能,在IOS中可通过CLLocationManage类来实现。其中后台定位...

网友评论

      本文标题:iOS 后台提交定位信息

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