应用程序在后台时的iOS可达性

时间:2015-02-18 17:52:25

标签: ios iphone ios7 ios8 reachability

我的应用程序需要有关用户是否连接到Wifi网络而不是互联网连接的确切信息,所以请不要对用例进行评论。任务是:用户需要验证他们的Wifi是否已连接,但如果他们没有可用于连接的Wifi网络,他们可以在以后进行。为此,我需要我的应用程序通知用户以后连接到Wifi网络,现在您可以继续测试。

我可以使用后台获取请求中的可达性来完成此操作吗?应用程序可以在后台获取中执行的任务是否有任何限制?

1 个答案:

答案 0 :(得分:0)

在一般情况下,这是不可解决的。您无法在后台无限期地运行任意代码(除非您因其他原因已经是允许的后台任务,例如位置服务或VoIP,但这些仍有限制)。当可达性发生变化时,您无法请求启动。

但是,您可以将NSURLRequest配置为不使用移动访问。这与“无线”不完全相同,但它很接近,可能就是你的意思(你不清楚为什么“无线”是标准)。然后,您可以使用NSURLSessionUploadTaskNSURLSessionDownloadTask要求操作系统尽可能执行操作(当您在后台时,不会以任何方式唤醒您或让您参与其中)。如果该请求发送到您的服务器,则可以使用推送通知来提醒用户并获得您所描述的体验。