【发布时间】:2011-03-13 15:55:26
【问题描述】:
我正在开发一个 iPad 应用程序,该应用程序具有一个在高端口上侦听的嵌入式 HTTP 服务器,并且我正在使用 UIWebView 从这个 HTTP 服务器加载页面。
对于应用程序的功能,重要的是它在没有可用网络连接时工作。
UIWebView 正在加载格式为 http://localhost:port/path 的 URL
当我在 iPad 上禁用 Wi-Fi 并运行应用程序时,UIWebView 的委托会收到带有以下 NSError 对象的 webView:didFailLoadWithError: 消息:
Error Domain=NSURLErrorDomain Code=-1009 UserInfo=0x1b4a50 "no Internet connection"
很明显,SDK 很聪明,检测到它没有 Internet 连接,但应该可以在没有 Internet 连接的情况下访问 127.0.0.1/localhost/::1。我将向 Apple 报告此错误,但同时在此征求有关此 SDK 错误的可能解决方法的建议。
请注意:更改应用程序的架构不在此问题的范围内。
【问题讨论】:
-
为什么不用 UIWebView 的
loadHTMLString:baseURL:方法加载页面? -
我不能真正深入细节(因此问题的最后一句),但有充分的理由说明我不能使用涉及需要处理外部脚本、样式和图像的方法页面引用的资源以及在初始页面加载开始之前不容易确定的资源。嵌入式 Web 服务器就像一种代理服务器,它通过 Wi-Fi/3G 网络访问以外的方式获取资源。