Android学习笔记之——WebView

来源:互联网 发布:js 日期插件 编辑:程序博客网 时间:2024/04/23 17:16
package com.example.zyallz.webviewdemo;import android.app.ProgressDialog;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.KeyEvent;import android.view.Menu;import android.view.MenuItem;import android.webkit.WebChromeClient;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;public class MainActivity extends AppCompatActivity {    private WebView webView;    private ProgressDialog dialog;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        init();    }    private void init() {        webView = (WebView) findViewById(R.id.webview);        webView.loadUrl("http://baidu.com");        //覆盖WebView默认通过第三方或者系统浏览器打开网页的行为,使得网页可以在WebView中打开        webView.setWebViewClient(new WebViewClient() {            @Override            public boolean shouldOverrideUrlLoading(WebView view, String url) {                //返回值为true时在webview中打开网页                view.loadUrl(url);                return true;            }        });        //设置webview启用网页中的javascript        WebSettings settings = webView.getSettings();        settings.setJavaScriptEnabled(true);        //设置缓存模式为有限加载缓存,否则访问网络        settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);        webView.setWebChromeClient(new WebChromeClient() {            @Override            public void onProgressChanged(WebView view, int newProgress) {                if (newProgress == 100) {                    //加载完毕,关闭进度条                    closeDialog();                } else {                    //正在加载,打开进度条                    openDialog(newProgress);                }            }            private void closeDialog() {                if (dialog != null) {                    dialog.dismiss();                    dialog = null;                }            }            private void openDialog(int newProgress) {                if (dialog == null) {                    dialog = new ProgressDialog(MainActivity.this);                    dialog.setTitle("loading...");                    dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);                    dialog.setProgress(newProgress);                    dialog.show();                } else {                    dialog.setProgress(newProgress);                }            }        });    }    //物理键返回上一页面    @Override    public boolean onKeyDown(int keyCode, KeyEvent event) {        if (keyCode == KeyEvent.KEYCODE_BACK) {            if (webView.canGoBack()) {                webView.goBack();            } else {                System.exit(0);            }            return true;        }        return super.onKeyDown(keyCode, event);    }}
0 0