WebView的简单学习20160820

  1. 加载本地资源
  2. //加载web资源
  3. //启用 支持Javascript
  4. //webView加载优先使用缓存
  5. 设置显示进度条对话框
  6. 设置是否可以返回上一页
package com.gao.webviewdemo;

import android.app.ProgressDialog;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.KeyEvent;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {
    String url = "http://www.cctv.com/";

    WebView webView;
    private ProgressDialog dialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

//        Uri uri = Uri.parse(url);
//        Intent intent = new Intent(Intent.ACTION_VIEW, uri);
//        startActivity(intent);

        initView();
    }

    private void initView() {
        webView = (WebView) findViewById(R.id.webView);

        //加载本地资源
        assert webView != null;
        // webView.loadUrl("file:///android_asset/example.html");

        //加载web资源
        webView.loadUrl("http://www.baidu.com/");
        webView.setWebViewClient(new WebViewClient() {
            /**
             * 覆盖webView默认通过第三方浏览器或者系统浏览器打开网页的行为.使得网页可以在webView中打开
             * @param view webView
             * @param url 打开url路径
             * @return 返回 true表示控制网页在webView中打开, 返回 false 表示调用系统浏览器或者第三方浏览器去打开
             */
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });

        //启用 支持Javascript
        WebSettings settings = webView.getSettings();
        settings.setJavaScriptEnabled(true);

        //webView加载优先使用缓存
        settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);

        webView.setWebChromeClient(new WebChromeClient() {
            /**
             *
             * @param view
             * @param newProgress 1--100的整数
             */
            @Override
            public void onProgressChanged(WebView view, int newProgress) {
                if (newProgress == 100) {
                    //显示进度条 网页加载完毕 隐藏 progressDialog
                    hideDialog();
                } else {
                    //网页正在加载 显示 progressDialog
                    showProDialog(newProgress);
                }
            }

            private void hideDialog() {
                if (dialog != null && dialog.isShowing()) {
                    dialog.dismiss();
                    dialog = null;
                }
            }

            private void showProDialog(int newProgress) {
                if (dialog == null) {
                    dialog = new ProgressDialog(MainActivity.this);
                    dialog.setTitle("正在加载中...");
                    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(); //返回上一页面
                return true;
            } else {
                System.exit(0); //退出程序
            }
        }

        return true;
    }
}

你可能感兴趣的:(webview,webview)