每天在特定时间在后台从 iOS 调用 Web 服务

Aas*_*aug 1 cocoa-touch ios background-task

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

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

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

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

Sah*_*Roy 5

您有以下选择。

  1. Silent Notification:从服务器推送一个静默推送通知,表明现在是时候了,您需要调用 webservice 并进一步执行必要的任务。您将有大约30 秒的时间来完成任务。现在请注意,在此期间不必打开您的应用程序,因为这将在后台完成,而您的应用程序不会打开。

    按照 这个 链接在这里无声地通知配置项目

  2. 基于位置(地理围栏/位置更改):好吧,您通过给它一个位置来管理您的应用,每当它进入/存在/位置在该特定位置附近/上更新时,应用即使终止,也将在后台启动.

    applicationDidBeginLaunchingWithOptions 将使用特定键调用,通知此应用程序是从位置更改启动的。

    按照 链接相应地配置您的应用程序。现在需要注意的是,这不取决于时间,而是一个或多个特定位置,以适合您的为准。

  3. UILocalNotificationPush Notification:但在这两种情况下,都不能保证用户会首先与通知横幅进行交互并打开应用程序。

因此,在第一个选项中,您可以在基于时间和基于位置的更改中,无需用户与设备交互(设备必须连接到互联网)即可完成工作,而在第二个选项中,用户必须与设备交互(通知横幅) )。请选择最符合您要求的一种。