如果有人遇到以下问题,请告诉我您能否找到解决方案。我花了几天时间想出一个解决方案,但到目前为止还没有运气。我正在使用 XCode 4.5 和 iOS 6 SDK Golden Master。
基本上,我的应用程序读取 HTML 文件并将其内容交给 WebView 进行呈现。
NSString *path = [[NSBundle mainBundle] pathForResource:@"filename" ofType:@"html"];
NSString *html = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:NULL];
NSURL *baseURL = [NSURL URLWithString:@"http://mysite.com"];
[webView loadHTMLString:html baseURL:baseURL];
HTML 包含一些 标签,例如:
问题是,UIWebView 似乎无法下载 CSS 文件。 UIWebViewDelegate 确实会立即收到 webViewDidStartLoad,但它需要大约 5 分钟才能收到 webViewDidFinishLoad 消息。 CSS 未被拾取。
如果我从 HTML 中删除链接,一切正常。
最佳答案
iOS 6 发布后,我的 WebView 中也出现了类似的问题。尝试将以下 UIWebView 属性设置为 true (YES) { 仅适用于 iOS 6+ }:
suppressesIncrementalRendering
A Boolean value indicating whether the web view suppresses content rendering until it is
fully loaded into memory.
@property(nonatomic) BOOL suppressesIncrementalRendering
基本上,在我的情况下,异步内容加载会产生一些以前不存在的奇怪竞争条件。我花了一段时间才找到那个。不过,我也同意 Brian 的观点——使用一些代理软件并观察您的流量,以验证您需要的一切是否进入以及何时进入。这可能非常有用。
如果有帮助,请告诉我?
关于objective-c - iOS 6 - UIWebView loadHTMLString 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12466993/