【问题标题】:webViewDidFinishLoad did finish loading but didn't finish showing content on screenwebViewDidFinishLoad 确实完成了加载,但没有完成在屏幕上显示内容
【发布时间】:2013-04-06 13:02:16
【问题描述】:

我在我的应用程序中经常使用webViewDidFinishLoad,而UIWebView 的某些内容确实让我感到困扰,嗯,实际上有两件事。 首先,当我将新内容加载到UIWebView 时,我会在半秒内看到加载到相同UIWebView 的最后一页,这将迫使我使用类似的方式“清理”UIWebView

[_mainWebView stringByEvaluatingJavaScriptFromString:@"document.open();document.close();"];

在加载新内容之前。

我遇到的第二个问题也是这个问题的主要问题是,如果我将一些新内容加载到我的 UIWebView 并执行以下操作:

[_mainWebView loadHTMLString:htmlString baseURL:nil];
...
    - (void)webViewDidFinishLoad:(UIWebView *)webView {
            _mainWebView.alpha = 1;
    }

在某些情况下,UIWebView 在显示内容之前会显示为白色半秒。我猜测内容已经加载到UIWebView 中,这就是webViewDidFinishLoad:webView 正在触发的原因,但是对于显示内容的小型html 页面比实际加载需要更长的时间。有什么解决方法可以用来避免显示一秒钟左右的空白屏幕但仍然保存那一秒钟吗?

我想过将 alpha 从 0 设置为 1,但这个解决方案对我来说有点蹩脚。

【问题讨论】:

  • 你对 html 有控制权吗?或者您愿意下载和操作 html?如果是这样,您可以将一些 javascript 添加到在您的应用程序中运行回调的页面...
  • 我在显示之前下载了 html。听起来很有趣,我愿意尝试。 :)
  • 显示的代码实际上并没有太多可继续的地方。请您提供更多内容以准确显示您在做什么。
  • 我添加了完成的代码行以使其更容易理解,但我唯一要做的是将 html 加载到 webview 并在加载时显示 webview。问题是由于UIWebView 后台线程,在加载内容之前显示了 webview,如下所述:stackoverflow.com/questions/2311564/…

标签: ios objective-c cocoa-touch cocoa uiwebview


【解决方案1】:

尝试添加一个 javascript 回调,以便知道 Web 视图内容何时实际加载:Javascript in UIWebView callback to C/Objective-C

【讨论】:

    猜你喜欢
    • 2011-06-11
    • 2015-01-24
    • 1970-01-01
    • 2015-01-17
    • 1970-01-01
    • 2021-05-01
    • 2021-01-28
    • 1970-01-01
    • 2010-10-30
    相关资源
    最近更新 更多