Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c iOS地理围栏漫游/延迟解决方案_Objective C_Ios7_Core Location_Background Process_Geofencing - Fatal编程技术网

Objective c iOS地理围栏漫游/延迟解决方案

Objective c iOS地理围栏漫游/延迟解决方案,objective-c,ios7,core-location,background-process,geofencing,Objective C,Ios7,Core Location,Background Process,Geofencing,我目前正在解决一个问题,因为我正试图找出一个在iOS中实现地理围栏和游荡的方法 到目前为止,我所做的一切都非常适用于地理围栏,而应用程序是前景化的 我采取的步骤如下: 在Location Manager didUpdateLocations上,继续在后台下载新的GeoFences 在接收到后台抓取、解析当前分配的GeoFence数组并根据需要添加/删除时,由于上述20个限制,我基本上只是从需要从web调用中添加的GeoFence中删除离当前位置最远的GeoFence 一旦我完成了,尘埃落定,需要

我目前正在解决一个问题,因为我正试图找出一个在iOS中实现地理围栏和游荡的方法

到目前为止,我所做的一切都非常适用于地理围栏,而应用程序是前景化的

我采取的步骤如下:

  • 在Location Manager didUpdateLocations上,继续在后台下载新的GeoFences
  • 在接收到后台抓取、解析当前分配的GeoFence数组并根据需要添加/删除时,由于上述20个限制,我基本上只是从需要从web调用中添加的GeoFence中删除离当前位置最远的GeoFence
  • 一旦我完成了,尘埃落定,需要删除/添加哪些Geo。我指定要监视的新区域
  • 每当我收到来自位置代表的输入/退出调用时,我都会查看触发器和数据集,以查看我正在处理的是哪种地理围栏。我的问题源于处理游荡的地理围栏(比如,当有人进入该区域后在该区域停留5分钟时,这是一个完全“成功”的触发
  • 当应用程序前景化时,我只需使用UserInfo字典创建一个UILocalNotification,其中包含计算地理围栏和重新创建区域所需的大部分数据(如果用户仍在区域内->成功!),然后我将其设置为点火,日期为now+delayTimeInSeconds。这工作非常出色,没有错误

    我的问题是,当应用程序处于后台时,LocalNotification方法不起作用,因为LocalNotification没有AlertBody,并且不打算以任何方式或出于任何目的向用户发出警报,因为此通知本质上是一个软触发。一旦我们确定用户是否仍然处于在地理围栏内(或正在离开地理围栏)

    我正在集思广益地讨论如何处理这个问题的不同解决方案,如果有人有一些见解,这将非常有帮助

    我目前的想法是创建一个后台任务,其持续时间等于我当前GeoFence闲逛时间段的最大持续时间(只要不超过10分钟)并启动定位服务,使其处于正常模式。找到当前位置,并在每个必要的时间段触发一个触发器的位置检查。如果有触发器,请继续并向用户显示通知。继续,直到我的时间/闲逛地理围栏用完,并尽早退出(如果可能)

    当然,如果在没有警报的情况下在后台发送的LocalNotifications会唤醒应用程序,这也没问题,不幸的是,不是:X