应用处于未运行或已终止状态时的网络选项

时间:2016-01-23 17:12:48

标签: ios objective-c network-programming

我们正在构建一个需要在12小时内与服务器签到的iOS iPhone应用程序。这需要让服务器知道应用程序仍然在服务器上使用它的服务。根据我们的理解,当应用程序处于后台状态(不在前台显示)时,可以通过背景提取或远程通知来实现这一点。

但是当应用程序未运行或终止时,这是不可能的,当应用程序处于这些状态时,则无法启动与服务器的通信。这个陈述是否正确?是否有可能在设备启动后启动通信,是否可以向te服务器发送一条小的保持活动消息?

在非运行和终止状态(?)中无法进行后台获取和响应远程通知,因此我们无法将这些机制用于此目的。如果是这种情况,我们可以尝试其他任何解决方案吗?或者这是不可能的?

我们在互联网上查看了很多来源,但有些人说这是有可能的,有些人则说不是。

1 个答案:

答案 0 :(得分:1)

您可能需要查看静音推送通知。这是事情,如果应用程序处于后台模式或暂停状态,你会没事的。如果应用程序被用户杀死,则表示您遇到了问题。

您始终可以发送静音推送通知,并等待从设备拨打服务电话到您的服务。如果有响应,则表示应用程序处于后台或暂停,然后您可以继续执行您需要执行的任何操作。如果没有请求,则表示应用已被杀死。然后,您可能希望发送非静默推送,让该设备的用户知道他需要启动应用程序或类似的东西。我不知道你将如何解决它,但这可能是一种可能性。

我会告诉你看一下NSURLSession和Background NSURLSessionConfiguration,但是你会遇到同样的问题。如果用户手动终止应用程序,您需要找到解决方案来设置与服务器的连接,这将暗示用户以某种方式启动您的应用程序。