【问题标题】:iOS 6 - UIWebView loadHTMLString not working properlyiOS 6 - UIWebView loadHTMLString 无法正常工作
【发布时间】:2012-09-10 03:01:12
【问题描述】:

如果有人遇到以下问题,请告诉我您是否能够找到解决方法。我花了几天时间试图想出一个解决方案,但到目前为止还没有运气。我正在使用 XCode 4.5 和 iOS 6 SDK Golden Master。

基本上,我的应用程序读取 HTML 文件并将其内容交给 Web 视图进行渲染。

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 中删除链接,一切正常。

【问题讨论】:

  • 您确定这是与 iOS6 相关的问题吗?我相信我在 iOS4 下也遇到过类似的问题……啊,是的,我无法解决这个问题,于是我将所需的所有内容都包含在我拥有的本地 HTML 文件中,将 CSS 放在 中。事实上,我完全替换了我的 HTML 中的 head。对不起。
  • 是的,问题出在我们扩展 NSURLCache 的类中。 iOS 6 中的某些行为发生了变化,因此无法正常工作。

标签: objective-c uiwebview ios6


【解决方案1】:

如果不能直接访问该项目,这真的很难说。您是否尝试在本地浏览器中加载页面以确认 css 确实正在加载?如果它正在加载,那么我建议在模拟器中运行该应用程序,同时运行诸如 Charles 代理之类的东西。 Charles 将记录您的所有出站请求并显示它们的结果。这样,您就可以确定问题是真正在 sdk 内部还是外部。

如果您有 Apple 开发者帐户,请查看 WWDC 2012 会议视频。你可以在这里找到它们:https://developer.apple.com/videos/wwdc/2012/。有一个名为“调试 iOS 上的 UIWebViews 和网站”的视频。我还没有看过,但它可能包含一些可以帮助您解决问题的信息。

祝你好运!

【讨论】:

    【解决方案2】:

    所以如果所有的 css 和其他东西都在远程服务器上,你为什么要从本地文件加载 html?可能这与安全有关(您试图从本地文件加载 html,而从远程加载其他内容),或者只是 UIWebView 中处理 baseURL 的问题

    【讨论】:

      【解决方案3】:

      iOS 6 发布后,我的 Web 视图中出现了类似问题。尝试将以下 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 的观点 - 使用一些代理软件并观察您的流量,以验证您需要的所有东西都在进来以及什么时候进来。这可能非常有用。

      如果有帮助,请告诉我?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-24
        相关资源
        最近更新 更多