码迷,mamicode.com
首页 > 移动开发 > 详细

Android中监听webview监听是否加载完成

时间:2015-11-11 20:45:34      阅读:871      评论:0      收藏:0      [点我收藏+]

标签:

之前写过一篇捕获Phoengap的webview事件的方法,主要是在实现了CordovaInterface的Activity中,  在onMessage中根据第一个参数的message name来判断webview的加载事件。不过如果是在Fragment中,一个Activity加载了多个包含了WebView的fragment的话,就无法在onMessage中判断到底是哪个WebView的加载事件。

经过尝试,发现,还是可以使用setWebViewClient的方式来,来重写WebViewClient的对应的onPageStart和onPageFinish等方法来处理加载事件


[java]
CordovaWebView webView = (CordovaWebView)findViewById(R.id.webView); 

 CordovaWebView webView = (CordovaWebView)findViewById(R.id.webView);[java] view plaincopyprint?CordovaInterface cordovaInterface = (CordovaInterface) context; 
 
       CordovaWebViewClient cordovaWebViewClient = new CordovaWebViewClient(cordovaInterface, webView) { 
           @Override 
           public void onPageStarted(WebView view, String url, Bitmap favicon) { 
 
               LogUtil.debug("onPageStarted " + url); 
               super.onPageStarted(view, url, favicon); 
               progressBar.setVisibility(View.VISIBLE); 
           } 
 
           @Override 
           public void onPageFinished(WebView view, String url) { 
               LogUtil.debug("onPageFinished " + url); 
               super.onPageFinished(view, url); 
               progressBar.setVisibility(View.GONE); 
           } 
 
           @Override 
           public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
               LogUtil.debug("onReceivedError " + url); 
               super.onReceivedError(view, errorCode, description, failingUrl); 
               progressBar.setVisibility(View.GONE); 
               errorView.setVisibility(View.VISIBLE); 
           } 
       }; 
       webView.setWebViewClient(cordovaWebViewClient); 
 
       webView.loadUrl(url); 

 CordovaInterface cordovaInterface = (CordovaInterface) context;

        CordovaWebViewClient cordovaWebViewClient = new CordovaWebViewClient(cordovaInterface, webView) {
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {

                LogUtil.debug("onPageStarted " + url);
                super.onPageStarted(view, url, favicon);
                progressBar.setVisibility(View.VISIBLE);
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                LogUtil.debug("onPageFinished " + url);
                super.onPageFinished(view, url);
                progressBar.setVisibility(View.GONE);
            }

            @Override
            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                LogUtil.debug("onReceivedError " + url);
                super.onReceivedError(view, errorCode, description, failingUrl);
                progressBar.setVisibility(View.GONE);
                errorView.setVisibility(View.VISIBLE);
            }
        };
        webView.setWebViewClient(cordovaWebViewClient);

        webView.loadUrl(url);

Android中监听webview监听是否加载完成

标签:

原文地址:http://www.cnblogs.com/wikiki/p/4957238.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!