0

UIWebView 成功加载内容,但不显示。UIWebView 只是白屏。但是,如果您单击此 UIWebView,它将处理您的单击。例如,如果您单击链接应该在的位置(但实际上是空白区域),则单击处理并加载下一页并显示 OK

该错误是不稳定的。我只使用本地 HTML 文件(我们的主页,它在本地生成)得到它,网页内容加载正常。它发生在 20% 的情况下。但同时,它非常粘。一旦出现白屏,您可以多次重新加载此页面并看到白屏(但如果您单击隐形链接,则成功显示另一个页面)。有时它偶尔会无缘无故地出现。您可以上下“滚动”这个空白屏幕,它偶尔会加载。这个本地 HTML 有很多东西,嵌入的图像,javascripts 等,它可能是 javascript 问题,但我无法解释它是怎么回事,内容不可见,但仍然可以点击。

它发生在 iPod 真机和 iPhone 模拟器 4.3 中,但无法在 iPad 或 iPad 模拟器上重现。

我花了一整天试图解决这个问题。有任何想法吗?

4

1 回答 1

0

我解决了这个!

UIWebView 这种非常奇怪的行为是由 javascript 代码引起的。javascript就像(简化):

    <script>

    function onLoad() {
       location.href='xxx://pageLoaded';
    }

    </script>

<body onload='onLoad();'>

这段代码的想法是通知应用程序页面已加载的事实。在应用程序中,我捕获对 xxx://pageLoaded 的请求并取消它(在 中shouldStartLoadWithRequest)。因为请求取消,我没想到这里会出现任何问题。特别是,我没想到内容会变得不可见,但仍然可以点击。我在火灾和变化之间添加了计时器 ( setTimeout) 。它解决了这个问题。onloadlocation.href

注意:我知道webViewDidFinishLoad. UIWebView这是一个非常简单的例子,只是为了解释问题和解决方案。真正的 javascript 更复杂,它所做的事情无法通过简单的使用来实现webViewDidFinishLoad

于 2012-07-20T13:53:56.300 回答