UIWebView加载但不显示内容

时间:2012-07-20 12:40:09

标签: ios uiwebview ipod

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

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

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

我花了一整天时间试着解决这个问题。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我解决了这个问题!

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

    <script>

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

    </script>

<body onload='onLoad();'>

此代码的想法是通知应用程序有关页面已加载的事实。在应用程序中,我捕获到xxx:// pageLoaded的请求并取消它(在shouldStartLoadWithRequest中)。因为要求取消,我没想到这里有任何问题。特别是,我没想到内容会变得隐形,但仍然是可以理解的。我在setTimeout次火灾和onload更改之间添加了计时器(location.href)。它解决了这个问题。

注意:我知道webViewDidFinishLoad中的UIWebView事件。这是一个非常简单的例子,仅用于解释问题和解决方案。真正的javascript更复杂,只需简单使用webViewDidFinishLoad就无法实现它。