我想做一个iOS应用程序(特别是iPad),它的行为就像一个Web服务器。我看到了COCOAHTTPSERVER附带的示例,但我不明白一些事情。
我的应用程序在后台运行时是否可以从同一设备中运行的另一个应用程序接收请求?
如果可能的话,我该怎么做?
否则,如果不可能,无法在后台运行的Web服务器应用程序的含义是什么?
我的确切问题如下:我需要一个 iOS 应用程序,该应用程序可以接收来自同一设备中在 safari 上运行的 javascript 应用程序的请求。我可以在后台创建一个行为类似于 Web 服务器的应用程序(因为 safari 必须在前台),或者有另一种方法可以实现这一点吗?
您可以在iOS的后台运行Web服务器,但不幸的是只能在有限的时间内(最多10分钟),操作系统可以随时停止它。有关详细信息,请参阅此技术说明 [1]。
如果您可以接受该限制,则应使用现有的网络服务器,例如 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
这个库可能会让你的任务更容易。
https://github.com/swisspol/GCDWebServer
不,iOS 不支持在后台运行的 Web 服务器。
Apple 这样做的原因是 Web 服务器必须侦听入站网络请求。 侦听入站网络请求要求无线电始终处于活动状态。 有源无线电耗尽电池电量。