一、什么是WebView
WebView類是安卓中用來顯示網(wǎng)頁的幫助類,通過使用WebView控件可顯示網(wǎng)頁內(nèi)容涎拉,還可通過javascript來進(jìn)行網(wǎng)頁的交互摇锋。
二、WebView的使用方法
感覺沒什么太多可說的翔烁,直接上代碼,用法看注釋
webView = (WebView) findViewById(R.id.webView);
assert webView != null;
webView.loadUrl("http://2014.qq.com"); //讀取網(wǎng)頁
//WebViewClient可以幫助WebView處理頁面信息
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
WebSettings webSettings = webView.getSettings();//通過WebSettings類可進(jìn)行參數(shù)設(shè)置
webSettings.setJavaScriptEnabled(true);//支持javascript
//優(yōu)先加載緩存中的內(nèi)容,沒有從網(wǎng)絡(luò)上加載
webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
//通過setWebChromeClient方法加載對話窗體
webView.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view, int newProgress) {
if(newProgress==100){
//網(wǎng)頁加載完畢
closeDialog();
}else{
//網(wǎng)頁正在加載
openDialog(newProgress);
}
}
private void closeDialog() {
if(progressDialog!=null&&progressDialog.isShowing()){
progressDialog.dismiss();
progressDialog=null;
}
}
private void openDialog(int newProgress) {
if(progressDialog==null){
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setTitle("正在加載");
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setProgress(newProgress);
progressDialog.show();
}else{
progressDialog.setProgress(newProgress);
}
}
});
通過重寫onKeyDown()方法可自定義按鍵事件
//自定義返回按鍵事件
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_BACK){
//Toast.makeText(this, webView.getUrl(),Toast.LENGTH_SHORT).show();
if(webView.canGoBack()){
webView.goBack();
return true;
}else{
System.exit(0);
}
}
return super.onKeyDown(keyCode,event);
}