在 iOS 上本地托管页面

Host page locally on iOS

我不知道在 iOS 上可行,但最近我去了日本,其中一个免费 wifi 应用程序想将配置文件安装到我的 iPhone 中。当我确认安装时,它只是用 127.0.0.1 打开了 Safari。它加载了一些页面并从那里下载了配置文件。
如何在 iOS 上托管一些页面?

创建网络服务器并不难。编码当然很多,但是原理还是很简单的。

github (GCDWebService) 上有很多第 3 方库,只需尝试搜索 "ios http server"

要手动创建它,您需要几个步骤:

1) 在 CFSocketCreate 的帮助下,您打开具有特定端口的新套接字(标准 HTTP 80,或安全的 443 应该在没有 root 访问权限的情况下被禁止)什么将在网络接口上监听传入请求.

2) 你需要准备一些receiver,当一些request income的时候就会被触发。您可以使用 NSFileHandle class 并在您的通知中心注册 NSFileHandleConnectionAcceptedNotification。并使用 acceptConnectionInBackgroundAndNotify 方法允许后台模式。但我建议先阅读手册 NSFileHandle Apple documentation

3) 处理传入的请求。您注册的选择器被调用,在 NSNotification.userInfo 属性 中是传入请求,您可以在此处生成一些页面并在 safari 中打开它,或者在您的应用程序中或做任何您想做的事情。

4) 如果你想接收一些POST数据或流,需要在一些数据可用时注册NSFileHandleDataAvailableNotification什么触发选择器。