UIWebView已成功加载内容,但未显示内容。 UIWebView只是白屏。但是,如果您单击此UIWebView,它将处理您的点击。例如,如果您点击链接所在的位置(但实际上是空白区域),则处理点击并下一页加载并显示确定。
错误不稳定。我只使用本地HTML文件(我们的主页,它在本地生成),Web内容加载正常。它发生在20%的情况下。但与此同时,它非常粘。一旦获得白屏,您可以多次重新加载此页面并看到白屏(但如果您单击不可见的链接,则会成功显示另一页)。有时它偶尔会出现没有任何理由。您可以上下“滚动”此空白屏幕,偶尔会加载它。这个本地HTML有很多东西,嵌入式图像,javascripts等,它可能是javascript问题,但我无法解释它是如何,内容不可见,但仍然可点击。
它发生在iPod真实设备和iPhone模拟器4.3中,但无法在iPad或iPad模拟器上重现。
我花了一整天时间试着解决这个问题。有什么想法吗?
答案 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
就无法实现它。