在 iOS 后台运行 Http 服务器

Posted

技术标签:

【中文标题】在 iOS 后台运行 Http 服务器【英文标题】:Running an Http Server in Background in iOS 【发布时间】:2015-06-23 15:06:08 【问题描述】:

我目前正在构建一个应用程序,作为 wifi 扬声器下载和播放音乐的 http 服务器。我清楚地知道,应用程序资源在它们进入后台后不久就会被杀死。有什么方法可以保持 http 服务器和从中获取数据的设备之间的连接?我需要一个合法的方式,因为这个应用程序是要提交到应用商店。我尝试在网上搜索,我发现他们提供的解决方案似乎被苹果拒绝了。

非常感谢!

【问题讨论】:

通常应用程序无法在后台持续运行。然而,有一些背景模式确实允许它(有一些警告和限制)。其中之一是音频,但是在您的情况下,不是应用程序本身在播放音频,而是在启用它,因此不清楚您的应用程序是否可以合法地使用背景音频模式来启用后台执行。你也可以看看airplay 是的,这就是@Gruntcakes 的问题。 我非常怀疑您能否在这里找到答案。人们只能猜测。而且没有办法提前询问苹果是否允许。 【参考方案1】:

您可以尝试使用 ios 中可用的音频和 AirPlay 后台模式。

他们是否接受作为应用程序一部分的 HTTP 服务器只有时间才能判断。

在此处阅读更多信息:https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

如果其他后台模式(例如蓝牙/VOIP)无法用作解决方法,但在审核期间可能不允许使用。

【讨论】:

我不久前阅读了该文档,其中指出如果您要使用音频和 AirPlay 背景,那么您的应用应该播放可以听到的内容,而不是无声歌曲。是的,Apple 会拒绝使用其他技巧。 另外,仅将您的应用标记为音频应用是不够的,您必须使用播放器 API

以上是关于在 iOS 后台运行 Http 服务器的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ios 中永远运行后台服务以同步数据

如何在 iOS 后台运行服务以接收本地通知?

ios LocationSensor 后台运行

在后台IOS实现长时间运行的任务

在ios中编写后台服务

iOS保持线程在后台运行