设为首页 加入收藏

TOP

WebView断网提示
2019-09-01 23:27:38 】 浏览:47
Tags:WebView 提示

转载请标明出处,维权必究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来判断是什么错误,进行过滤处理。

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇快速探索,音视频技术不再神秘 下一篇adb server is out of date. kill..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目