如今HTML5越来越猖狂,Android中用到webview的次数也越来越多了。我们用到webview基本上会使用到WebViewClient,有时也会使用到WebChromeClient。下面让我们看看webview的基本用法以及WebViewClient和WebChromeClient的区别。
webview的基本用法:
WebSettings webSettings = webview.getSettings();
//设置JavaScript可用
webSettings.setJavaScriptEnabled(true);
// zoom page
webSettings.setBuiltInZoomControls(false);
// 提高渲染的优先级
webSettings.setRenderPriority(RenderPriority.HIGH);
// set cache
webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
WebViewClient主要处理各种通知、请求事件的,常用的方法有:
onLoadResource:加载资源时响应
onPageStart:在加载页面时响应
onPageFinish:在加载页面结束时响应
onReceiveError:在加载出错时响应
shouldOverrideUrlLoading:在点击请求的是链接是才会调用,重写此方法返回true表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边。
WebChromeClient主要辅助WebView处理Javascript的对话框、网站图标、网站title、加载进度等比如
onCloseWindow(关闭WebView)
onCreateWindow()
onJsAlert (WebView上alert无效,需要定制WebChromeClient处理弹出)
onJsPrompt
onJsConfirm
onProgressChanged
onReceivedIcon
onReceivedTitle
看上去他们有很多不同,实际使用的话,如果你的WebView只是用来处理一些html的页面内容,只用WebViewClient就行了,如果需要更丰富的处理效果,比如JS、进度条等,就要用到WebChromeClient。