android.webkit庫聚合了webkit內核的瀏覽器功能,webview就是她的一個控件,能夠使得網頁輕鬆的內嵌到app裏。android
而且比較強大的是,還能夠直接跟js相互調用。web
webview有兩個方法:setWebChromeClient和setWebClient瀏覽器
setWebChromeClient主要處理解析,渲染網頁等瀏覽器作的事情網絡
WebChromeClient是輔助WebView處理Javascript的對話框,網站圖標,網站title,加載進度等
onCloseWindow(關閉WebView)
onCreateWindow()
onJsAlert (WebView上alert是彈不出來東西的,須要定製你的WebChromeClient處理彈出)
onJsPrompt
onJsConfirm
onProgressChanged
onReceivedIcon
onReceivedTitleapp
好比能夠添加進度條,使得界面更友好ide
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); } } } );
WebViewClient就是幫助WebView處理各類通知、請求事件的,具體來講包括: 網站
onLoadResource
onPageStart
onPageFinish
onReceiveError
onReceivedHttpAuthRequest 編碼
例如:url
webview1.setWebViewClient(new WebViewClient() { public void onReceivedError(WebView view, int errorCode, String description, String failingUrl){ // Handle the error spa
Toast.makeText(getApplicationContext(), "網絡鏈接失敗 ,請鏈接網絡。", Toast.LENGTH_SHORT).show();
} public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); //設置字符集編碼
webview1.getSettings().setDefaultTextEncodingName("UTF-8");
webview1.loadUrl("http://mfsj1908.m.tmall.com/");