有没有办法安排在每天特定时间调用Web服务的函数?
根据我的研究,我将不得不使用本地通知或NSTimer
来安排或在特定时间调用该功能。
但无论我的应用程序是在计划时间(而不是运行任何后台任务),还是在前台,我都需要这个工作。
有两种情况: 1.位置服务在我的应用程序的后台运行 2.没有正在运行的位置或后台服务,或者应用程序处于挂起状态(如果用户禁用了位置更新)
但是我必须在每天的预定时间向我的服务器发送一些状态。
答案 0 :(得分:4)
您有以下选择。
无声通知:从服务器推送静默推送通知,表示现在是时候,您需要调用Web服务并进一步执行必要的任务。您将有 30秒来完成任务。现在请注意,在此过程中,您的应用程序无需打开,因为这将在后台完成,而不会打开您的应用程序。
请 this 链接此处以使用静默通知配置项目
基于位置(地理位置/位置更改):您可以通过为应用提供一个位置来管理您的应用,无论何时进入/存在/位置都在该特定位置附近/上更新,该应用程序即使终止,也将在后台启动。
applicationDidBeginLaunchingWithOptions
将被调用
特定密钥通知此应用程序是从一个位置启动的
更改。
关注this 链接以相应地配置您的应用。现在需要注意的是这个问题 不依赖于时间,而是取决于特定的位置或位置, 哪个适合你。
UILocalNotification 或推送通知:但在这两种情况下,都无法保证用户会首先与通知横幅互动并打开应用程序。
因此,在第一个选项中,您可以在没有用户与设备交互(设备必须连接到互联网)的基于时间和基于位置的更改的情况下完成工作,在第二个选项中,用户必须与设备交互(通知横幅)。请根据您的要求选择最适合的那个。