WebView 从入坑到出坑(一)
WebView网络错误加载自定义页面
- 需求:因为如果没网络或者服务器异常加载时间过长,而且系统自带页面不好看,所以要显示自己的错误页面,并且减少加载时间。
- 实现:加上一个自己的定时器,开始加载的时间定时,结束的时候停止加载并且关闭定时器,用自定义的页面覆盖WebView。
- 坑一:自定义的页面覆盖了WebView,但是WebView本身还在加载,并且加载完成以后会覆盖自己的View,所以要用以下API结束WebView本身的网络加载,这样就不会覆盖自己的View。
webview.pauseTimers();
webview.stopLoading();
- 坑二:根本没有加载完成的API,onPageFinished和onPageChange 是数据加载完成,不是显示到UI完成,如果在这里面监听并且停止加载就会显示不出页面,就是WebView的页面还没显示出来,就调用了WebView的停止加载,所以在这里监听不要让定时器结束,当时间到了再停止WebView的加载,就是调用一下两个函数:
webview.pauseTimers();
webview.stopLoading();
- 参考 我写的WebView