android-discuss icon indicating copy to clipboard operation
android-discuss copied to clipboard

大家在Android中使用webview遇到过的坑有哪些?都是怎么解决的。

Open Reallym404 opened this issue 8 years ago • 10 comments

WebViewClient.onPageFinished()。load网页的时候,如果在 onPageStarted中开启了 dialog进度显示,在onPageFinished中取消dailog。但是,网页加载好,页面上已经可以完全看到了,但是onPageFinished并没有执行,也就是说其实还没有加载完。这要就导致页面已经显示,但是dialog还在加载,并且还要等很久才onPageFinished取消掉。好无语啊。如下图: qq 20160520170752

其实在 onProgressChanged:16 的时候 页面就可以完全显示了,但是还在dialog加载。到onPageFinished:100就等了很久了。

Reallym404 avatar May 20 '16 09:05 Reallym404

你有什么解决方法吗

ppjuns avatar May 30 '16 03:05 ppjuns

是不是那个url对应的Document就是没加载完啊

gaoyan10 avatar Jun 01 '16 10:06 gaoyan10

@gaoyan10 应该是 但是 整个基本页面是显示完了的,但是在回调onPageFinished 之前不知是在加载什么,要好久。

Reallym404 avatar Jun 02 '16 02:06 Reallym404

@gdmec07120731 目前没找到好的解决方法

Reallym404 avatar Jun 02 '16 02:06 Reallym404

你可以不适用loading dialog,用进度条的方式,这样加载进度的百分比也能显示出来,并且不会影响操作。可以参考微信打开web页面的做法。

chopiter avatar Jun 02 '16 02:06 chopiter

@chopiter 3Q! 微信的是在webview页面顶部加个条形进度条?

Reallym404 avatar Jun 03 '16 03:06 Reallym404

onPageFinished的回调时机不太稳定,感觉可以通过js自定义加载完成的回调再与Java通信

cervy avatar Feb 24 '17 08:02 cervy

同意楼上的。。。一般loading都是网页里面去做的。。。。

Dong4Am avatar Jul 20 '17 16:07 Dong4Am

WebChromeClient 自己实现onProgressChanged 想在哪个点关闭就在哪个点关闭

junchenChow avatar Jul 21 '17 10:07 junchenChow

这种不带有屏蔽用户点击的目的的进度,不用弹窗来实现就好。用progressbar放在顶上就好。

mariohide avatar Feb 05 '18 09:02 mariohide