我需要WebView来显示HTML页面A,页面A中有超链接标签,点击时会打开页面B.在我的Activity的操作栏上,我有一个Button,单击时将调用WebView.reload()。这应该是一个非常简单的WebView案例。
问题: 在Andorid 4.0.3或4.0.4上运行我的应用程序后,在页面A中单击超链接(标签)后,Android WevView停留在页面A上,没有任何事情发生。
什么-I-尝试:
1.当问题发生时,点击重新加载按钮,WevView正确显示页面B.
2.修改页面A和B的源代码,删除影响标签显示方式的CSS代码。然后,在单击A页中的超链接后,WebView可以正确跳转到页面B.
我认为这是Android 4.0.x中的一个错误,在HTML中删除CSS是不可能的,我坚持使用"重新加载解决方案"。
有谁知道这个bug或更好的解决方案的根本原因? 感谢
答案 0 :(得分:0)
使用WebChromeClient来实现webView功能。即使你无法加载html而不是调试你的代码并使用替代哪个函数不起作用。因为java脚本和CSS都只能在Web视图中工作,如果你在java脚本或css中犯了错误,它应该做奇怪的行为(不加载/空白加载/挂起屏幕)。
答案 1 :(得分:0)
问题由网页源中的WORKAROUND解决,而不是Android WebView。 在html正文中添加以下javascript:
try{
document.documentElement.clientHeight
} catch (e) {
};
以上js trys读取Web窗口高度,但它会强制刷新网页。 这就是这个js解决这个问题的方法。
我想这应该是Android 4.0.3 / 4.0.4中的一个错误。但是,目前只有当您的WebView加载由您开发的网页时,才能使用此解决方法来避免它。