当应用未运行iOS时进行服务呼叫

时间:2017-04-08 16:01:34

标签: ios objective-c

我有一个要求,即当用户提交表单时。我必须给用户30分钟的时间间隔来编辑表格。如果他不在30分钟的时间间隔内编辑表单,即使应用程序未运行,也应自动提交表单。当应用程序没有运行时,我们可以拨打服务电话吗?如果是,那么如何做到这一点。请帮忙。

3 个答案:

答案 0 :(得分:2)

如果您想在后台提交表单,如果应用程序在后台暂停,表单可能无法提交。

您可以先提交表格,如果用户在30分钟内编辑表格,您可以重新提交表格。

答案 1 :(得分:2)

要扩展Jasmeet的答案,您需要更改服务器。您需要最迟在applicationDidEnterBackground:提交表单,但您可能希望尽快提交表单(因为应用程序可能会崩溃或手机可能已关闭,在这种情况下您永远不会进入的背景)。如果进行了编辑,那么您将再次提交表单。如果通过30分钟(由服务器测量),则服务器将接受该表单。您可能希望在请求中包含一些时间戳信息,以便服务器知道上次编辑表单的时间。

无法在设备上的任意时间运行代码。您必须更改服务器代码,否则无法解决此问题。 (即使有一种方法可以在设备上的任意时间运行代码,也无法解决您的问题,因为设备甚至可能在30分钟后甚至无法启用或具有网络访问权限。)

如果由于某种原因无法更改服务器,则必须更改您的要求。这不能像你描述的那样解决。

答案 2 :(得分:0)

如果您在启用了后台模式的情况下提交了应用并且未启用Apple指南,则会启用后台模式支持。您的应用将被拒绝。在开始appdidenterbackground呼叫工作之前,请查看后台模式支持指南。您可以提示用户填写数据,但不要自动提交相当自动保存,下次他醒来时只需恢复表单,这样他就可以继续获得良好的用户体验。

使用后台模式的Apple指南。

2.5.4 Multitasking apps may only use background services for their 
intended purposes: VoIP, audio playback, location, task completion, 
local notifications, etc. If your app uses location background mode, 
include a reminder that doing so may dramatically decrease battery 
life.

https://developer.apple.com/app-store/review/guidelines/