webview中setWebChromeClient和setWebClient区别

来源:互联网 发布:数控车床车圆球g41编程 编辑:程序博客网 时间:2024/05/29 04:56

在用webview加载html页面时候,有时候会用到setWebClientsetWebChromeClient,他们之间的不同在于:

1.setWebClient就是帮助WebView处理各种通知、请求事件

onLoadResource 

onPageStart 

onPageFinish 

onReceiveError 

onReceivedHttpAuthRequest 

webview1.setWebViewClient(new WebViewClient() {                                   public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)              { // Handle the error                     Toast.makeText(getApplicationContext(), "网络连接失败 ,请连接网络。", Toast.LENGTH_SHORT).show();            }                   public boolean shouldOverrideUrlLoading(WebView view, String url) {                                 view.loadUrl(url);                                   returntrue;          } });

2.setWebChromeClient辅助WebView处理JavaScript的对话框,网站图标,网站title,加载进度等

onCloseWindow(关闭WebView) 

onCreateWindow() 

onJsAlert (WebViewalert是弹不出来东西的,需要定制你的WebChromeClient处理弹出

onJsPrompt 

onJsConfirm 

onProgressChanged 

onReceivedIcon 

onReceivedTitle

例如添加进度条:

webview1.setWebChromeClient(new WebChromeClient()        {                      public void onProgressChanged(WebView view, int progress)               {                   setProgress(progress * 100);                     if(progress == 100){                         imageView1.setVisibility(View.GONE);                    tv1.setVisibility(View.GONE);                    pb1.setVisibility(View.GONE);                    fy1.setVisibility(View.GONE);                }            }        }        );    

webView.getSettings().setJavaScriptEnabled(true);//支持js
webView.getSettings().setSupportZoom(true);//支持缩放
webView.getSettings().setBuiltInZoomControls(true);//出现缩放按钮

原创粉丝点击