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

问题描述 投票:1回答:1

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

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

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

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

ios cocoa-touch background-task
1个回答
4
投票

您有以下选择。

  1. 无提示通知:从服务器推送静默推送通知,指示现在是时候,您需要调用Web服务并进一步执行必要的任务。您将有大约30秒的时间来完成任务。现在请注意,在此过程中,您的应用程序无需打开,因为这将在后台完成,而不会打开您的应用程序。 按照this链接在这里使用静默通知配置您的项目
  2. 基于位置(地理位置/位置更改):您可以通过为应用程序提供一个位置来管理您的应用程序,无论何时进入/存在/位置在该特定位置附近/上更新,应用程序即使终止也将在后台启动。 将使用特定密钥调用applicationDidBeginLaunchingWithOptions,通知此应用程序是从位置更改启动的。 按照this链接相应地配置您的应用程序。现在需要注意的是,这不是取决于时间,而是取决于特定的位置或位置,以适合您的方式。
  3. UILocalNotification或推送通知:但在这两种情况下,它都无法保证用户将首先与通知横幅进行交互并打开应用程序。

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

© www.soinside.com 2019 - 2024. All rights reserved.