当前位置: 移动技术网 > 移动技术>移动开发>Android > WebView断网提示

WebView断网提示

2018年11月06日  | 移动技术网移动技术  | 我要评论

转载请标明出处,维权必究https://www.cnblogs.com/tangzh/p/9913968.html 

 

重写webviewclient中的方法,然后webview.setwebviewclient(mwebviewclient);

    webviewclient mwebviewclient = new webviewclient() {

        @override
        public boolean shouldoverrideurlloading(webview view, string url) {return false;
        }

        @override
        public void onpagestarted(webview view, string url, bitmap favicon) {
            super.onpagestarted(view, url, favicon);
        }

        @override
        public void onpagefinished(webview view, string url) {
            super.onpagefinished(view, url);
        }

        @override
        public void onloadresource(webview webview, string s) {
            super.onloadresource(webview, s);
        }

        @override
        public void onscalechanged(webview webview, float v, float v1) {
            super.onscalechanged(webview, v, v1);
        }

        @override
        public void onreceivederror(webview view, int errorcode, string description, string failingurl) {
mwebview.loadurl("");//避免出现默认错误页 showerrorview(); } };

在onreceivederror中便可以进行网络出错时候的提示与处理,若是走到这里说明网络出错,或者服务器出错。可以在该方法中进行判断是不是没有网络。6.0以上与6.0以下的都可以用该方法进行监听回调。

实践证明

1、在该方法被调用后,onpagefinished()方法也会被回调,所以最好不要在该方法中进行页面重置操作,比如断网时候弹出断网页面,但是若在onpagefinished()里面去显示正常页面,那么断网提示就消失了。

2、onpagefinished()会调用多次)

 

不过在6.0以上的时候又增加了一个新的方法:

@override
public void onreceivederror(webview view, webresourcerequest request, webresourceerror error) {
   super.onreceivederror(view, request, error);
}

实践证明:成功加载出网页的时候也会回调该方法,或者出现其他非网络错误的时候也会,所以我们需要通过error来判断是什么错误,进行过滤处理。

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网