我们的iOS应用程序具有一个Web视图,它正在渲染来自文件:URL的页面。当用户触摸<A>
元素切换页面,时间大约20%,它卡住如下:UIWebView在webViewDidStartLoad后卡住
- 用户点击链接
<A>
- 我们得到WebView.shouldStartLoadWithRequest回调
- 我们得到的WebView。 webViewDidStartLoad回调
- 没有任何反应后,该
屏幕仍显示与它的联系原来的页面。我们可以打破在两个方面的僵局:
- 旋转装置
- 点击屏幕
在这一点上,该页面将立即完成加载。
我们所用的配方从这里:
Javascript console.log() in an iOS UIWebView
,让我们一些洞察页面加载。我们将javascript方面的东西放在我们加载到页面上的第一个脚本文件中,并且在我们执行旋转或分接点解决方法之后才会打印它的消息。
所以看起来,它开始加载页面,并开始评估页面上的东西之间的某处。
我们已经尝试了一些变通,其中没有帮助:
- 设置location.href,而不是使用标签
- 从设置location.href JavaScript的超时
- 在didStartLoad回调,创建了一个线程,在webView上反复调用setNeedDisplay
任何想法我们可能会做错什么?
你能评论一下网页上的所有内容,或者大部分内容,但是仍然会重现问题吗?那将是我第一个诊断的方法。也许这是一个页面大小/内存问题。如果有应用程序内存错误,你是NSLog吗? –
在我的应用程序中同样奇怪的行为。你找到了解决方案吗? – olfuerniss
还没有答案,尽管我很高兴我们并不孤单。我已经看到了完全无关紧要的页面的问题,正如我所说的,我们已经尝试在我们要开始的页面的开头添加日志记录,但这并未发生。所以webkit已经离开了旧页面并开始加载新页面,但在解析任何内容之前就停止了。 –