android-discuss
android-discuss copied to clipboard
大家在Android中使用webview遇到过的坑有哪些?都是怎么解决的。
WebViewClient.onPageFinished()。load网页的时候,如果在 onPageStarted中开启了 dialog进度显示,在onPageFinished中取消dailog。但是,网页加载好,页面上已经可以完全看到了,但是onPageFinished并没有执行,也就是说其实还没有加载完。这要就导致页面已经显示,但是dialog还在加载,并且还要等很久才onPageFinished取消掉。好无语啊。如下图:
其实在 onProgressChanged:16 的时候 页面就可以完全显示了,但是还在dialog加载。到onPageFinished:100就等了很久了。
你有什么解决方法吗
是不是那个url对应的Document就是没加载完啊
@gaoyan10 应该是 但是 整个基本页面是显示完了的,但是在回调onPageFinished 之前不知是在加载什么,要好久。
@gdmec07120731 目前没找到好的解决方法
你可以不适用loading dialog,用进度条的方式,这样加载进度的百分比也能显示出来,并且不会影响操作。可以参考微信打开web页面的做法。
@chopiter 3Q! 微信的是在webview页面顶部加个条形进度条?
onPageFinished的回调时机不太稳定,感觉可以通过js自定义加载完成的回调再与Java通信
同意楼上的。。。一般loading都是网页里面去做的。。。。
WebChromeClient 自己实现onProgressChanged 想在哪个点关闭就在哪个点关闭
这种不带有屏蔽用户点击的目的的进度,不用弹窗来实现就好。用progressbar放在顶上就好。