需求
在我们使用WebView时,如果不对WebViewClient做任何处理,在页面加载出错时会显示默认的错误页面,长的比较丑,如果我们想要覆盖这个错误页面,显示成我们自己的错误页面,该如果处理?
很简单,重写WebViewClient,通过回调交给调用者来换成我们自己的页面就可以了
原理
覆盖Client接收到的错误,加载空页面
提供回调方法用于处理加载过程,既页面开始/页面结束/接收错误
踩过的坑
webview重加载的时候,如果使用webView.reload,依然会出现某些奇怪的现象,所以还是推荐使用webview.loadUrl的方式去重加载页面
下面看完整实现
/**
*自定义WebClient,覆盖默认错误页面,显示自定义错误页面
*
**/
public class CustomWebClient extends WebViewClient {
OnPageCallback onPageCallback ;//此回调对象用于接收处理页面结果