Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.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
如何跟踪用户';当他们进入或离开某些地方时,他们在iOS(Swift)中的连续位置?_Ios_Swift_Xcode_Gps_Location - Fatal编程技术网

如何跟踪用户';当他们进入或离开某些地方时,他们在iOS(Swift)中的连续位置?

如何跟踪用户';当他们进入或离开某些地方时,他们在iOS(Swift)中的连续位置?,ios,swift,xcode,gps,location,Ios,Swift,Xcode,Gps,Location,我正在构建一个具有以下要求的应用程序: 有X多个位置可供用户办理入住或退房手续 每当用户输入任何X位置时,我都需要调用一些后端API 每当用户退出任何X位置时,我都需要调用相同的后端API 即使用户将应用程序置于后台、前台或硬关闭状态,也需要这样做 X位置的数量可以随时更改,但只要应用程序可以调用后端API进行更新,就可以随时进行更新 这些位置的最小土工围栏半径为100米 我已经找到了各种各样的解决方案。第一种方法是在应用程序仅使用startUpdatingLocation()打开时跟踪位置,但

我正在构建一个具有以下要求的应用程序:

  • X多个位置可供用户办理入住或退房手续
  • 每当用户输入任何X位置时,我都需要调用一些后端API
  • 每当用户退出任何X位置时,我都需要调用相同的后端API
  • 即使用户将应用程序置于后台、前台或硬关闭状态,也需要这样做
  • X位置的数量可以随时更改,但只要应用程序可以调用后端API进行更新,就可以随时进行更新
  • 这些位置的最小土工围栏半径为100米
  • 我已经找到了各种各样的解决方案。第一种方法是在应用程序仅使用
    startUpdatingLocation()
    打开时跟踪位置,但它失败Requirement 4。第二种方法是使用
    startMonitoringSignificantLocationChanges()
    跟踪位置,但当用户进入或离开某个区域时,该方法存在显著差异,即,有时它无法捕捉到签入或签出,因此无法满足要求2和3


    唯一需要尝试的是区域监控,我想知道它是否能够满足上述所有参数。我也找不到多少关于如何最好地解决这个问题的文档。有人能给我指一下正确的方向吗?

    你可以使用CLCircularRegions发出进入/退出通知,但当应用程序硬关闭时,什么都不起作用。如果用户杀死应用程序,它就死了。谢谢@Paulw11,当应用程序硬关闭时,除了向用户发送推送通知消息外,我还有什么方法可以重新启动应用程序吗?没有。iOS让用户负责。如果他们杀死一个应用程序,它将保持死机状态。实际上,根据区域条目上的第二个答案,将重新启动一个终止的应用程序,因此可能需要进行一些测试。@Paulw11区域条目/退出回调将唤醒你的应用程序10秒钟,然后将其发送到后台。您可以使用此时间发送
    UILocalNotification
    ,以便用户打开应用程序