WebView与原生交互需要重写的方法

来源:互联网 发布:ubuntu cmd命令窗口 编辑:程序博客网 时间:2024/05/17 16:54

setWebChromeClient主要处理解析,渲染网页等浏览器做的事情

WebChromeClient是辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等 

mWebView.setWebChromeClient(new WebChromeClient() {    @Override    public void onProgressChanged (WebView view, int newProgress) {        if (100 == newProgress) {            hidenProgress();        }    }});

mWebView.setWebViewClient(new WebViewClient() {            // 重写该函数,可实现处理某Html5页面开始加载时,执行相应的逻辑            @Override            public void onPageStarted (WebView view, String url, Bitmap favicon) {                //远程Url,加载较慢                if (url.startsWith("http")) {                    // showProgress();                }            }            // 重写该函数,可实现处理某Html5页面结束加载时,执行相应的逻辑            @Override            public void onPageFinished (WebView view, String url) {                android.util.Log.i("当前路径", url);                //远程Url,加载较慢                if (url.startsWith("http")) {                    // mProgress.setText("加载进度:100");                    hidenProgress();                }            }            //重写该函数,可实现处理当某Webview即将加载某Url时,是否进行拦截,拦截后,该Webview将不继续加载该Url            @Override            public boolean shouldOverrideUrlLoading (WebView view, String url) {                Log.i("当前的路径", url);                //if(isok){                if(url.contains("action=phone")){                                        return true;                }                //分享                if (url.contains("action=share")) {                                        return true;                }                //返回                if (url.contains("action=back")) {                    finish();                    return true;                }                return false;            }        });

0 0