【10】WebView

一、什么是WebView

WebView类是安卓中用来显示网页的帮助类,通过使用WebView控件可显示网页内容,还可通过javascript来进行网页的交互。

二、WebView的使用方法

感觉没什么太多可说的,直接上代码,用法看注释

webView = (WebView) findViewById(R.id.webView);
assert webView != null;
webView.loadUrl("http://2014.qq.com");   //读取网页
//WebViewClient可以帮助WebView处理页面信息
webView.setWebViewClient(new WebViewClient(){
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
});
WebSettings webSettings = webView.getSettings();//通过WebSettings类可进行参数设置
webSettings.setJavaScriptEnabled(true);//支持javascript
//优先加载缓存中的内容,没有从网络上加载
webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
//通过setWebChromeClient方法加载对话窗体
webView.setWebChromeClient(new WebChromeClient(){
    @Override
    public void onProgressChanged(WebView view, int newProgress) {
        if(newProgress==100){
            //网页加载完毕
            closeDialog();
        }else{
            //网页正在加载
            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);
}

你可能感兴趣的:(【10】WebView)