objective-c - iOS 6 - UIWebView loadHTMLString 无法正常工作

标签 objective-c uiwebview ios6

如果有人遇到以下问题,请告诉我您能否找到解决方案。我花了几天时间想出一个解决方案,但到目前为止还没有运气。我正在使用 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/

相关文章:

ios - 如何在完成多个 UIWebView 请求后在 UITableViewCell 中找到事件指示器?

ios6 - CALayer renderInContext iOS7

ios - 使用经度和纬度获取位置 iOS 6 的方向

javascript - 如何确定网站是在 iPhone/Android 浏览器上打开还是从 iPhone/Android 应用程序网页 View 打开?

iphone - 在 cocoa 中的字符串上使用 MD5 哈希?

ios - 访问 block 属性

ios - OutputStream hasSpaceAvailable 永远不会变成 'true'

ios - 检测 UIWebview 何时开始播放音频

orientation - iOS6 界面方向损坏

objective-c - UIViewReportBrokenSuperviewChain