创建一个在后台运行为Web服务器的iOS应用程序
问题描述:
我想制作一个iOS应用程序(专门用于iPad),其行为类似于Web服务器。 我看到了COCOAHTTPSERVER的例子,但我不明白。创建一个在后台运行为Web服务器的iOS应用程序
我的应用程序可能会在后台接收来自运行在同一设备上的其他应用程序的请求吗?
如果有可能我该怎么做?
否则,如果不可能,Web服务器应用程序的含义是什么,它不能在后台工作?
我的确切问题如下:我需要一个iOS应用程序,可以从Safari应用程序接收来自Safari应用程序的请求,在同一个设备上运行。我可以创建一个应用程序,在后台运行时类似于Web服务器(因为Safari必须处于前台),还是有另一种方法来实现这一点?
答
不,iOS不支持在后台运行的网络服务器。
Apple做这件事的原因是Web服务器必须侦听入站网络请求。监听入站网络请求需要无线电始终处于活动状态。有源收音机耗尽电池。
答
您可以 iOS上运行在后台Web服务器无奈只能在有限的时间(最多10分钟max)和OS可以在任何时间停止。有关更多信息,请参阅此技术说明[1]。
如果您可以接受该限制,则应该使用已经存在的Web服务器,如GCDWebServer,它可以为您处理背景模式[2]。
[1] https://developer.apple.com/library/ios/technotes/tn2277/_index.html
[2] https://github.com/swisspol/GCDWebServer#gcdwebserver--background-mode-for-ios-apps
我发现类似的问题上 [StackOverffow] [1] [1]:http://stackoverflow.com/questions/ 9613357/IOS-背景的应用程序的网络访问 – Ievgenii