每天在特定时间从iOS调用来自iOS的Web服务

时间:2017-05-17 06:45:03

标签: ios cocoa-touch background-task

有没有办法安排在每天特定时间调用Web服务的函数?

根据我的研究,我将不得不使用本地通知或NSTimer来安排或在特定时间调用该功能。 但无论我的应用程序是在计划时间(而不是运行任何后台任务),还是在前台,我都需要这个工作。

有两种情况: 1.位置服务在我的应用程序的后台运行 2.没有正在运行的位置或后台服务,或者应用程序处于挂起状态(如果用户禁用了位置更新)

但是我必须在每天的预定时间向我的服务器发送一些状态。

1 个答案:

答案 0 :(得分:4)

您有以下选择。

  1. 无声通知:从服务器推送静默推送通知,表示现在是时候,您需要调用Web服务并进一步执行必要的任务。您将有 30秒来完成任务。现在请注意,在此过程中,您的应用程序无需打开,因为这将在后台完成,而不会打开您的应用程序。

    this 链接此处以使用静默通知配置项目

  2. 基于位置(地理位置/位置更改):您可以通过为应用提供一个位置来管理您的应用,无论何时进入/存在/位置都在该特定位置附近/上更新,该应用程序即使终止,也将在后台启动。

    applicationDidBeginLaunchingWithOptions将被调用 特定密钥通知此应用程序是从一个位置启动的 更改。

    关注this 链接以相应地配置您的应用。现在需要注意的是这个问题 不依赖于时间,而是取决于特定的位置或位置, 哪个适合你。

  3. UILocalNotification 推送通知:但在这两种情况下,都无法保证用户会首先与通知横幅互动并打开应用程序。

  4. 因此,在第一个选项中,您可以在没有用户与设备交互(设备必须连接到互联网)的基于时间和基于位置的更改的情况下完成工作,在第二个选项中,用户必须与设备交互(通知横幅)。请根据您的要求选择最适合的那个。