阅读背景:

WebView_weixin_34015566的博客

来源:互联网 
<uses-permission android:name="android.permission.INTERNET" />


public class WebActivity extends Activity {

    private WebView webView;
    private ProgressDialog progressDialog;
    final String url = "https://www.baidu.com";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web);
//        调到外部浏览器加载
//        Uri uri = Uri.parse(url);
//        Intent intent = new Intent(Intent.ACTION_VIEW,uri);
//        startActivity(intent);
          init();
    }

    private void init(){
        webView = (WebView)findViewById(R.id.webView);
        //加载本地网页--assets
//        webView.loadUrl("file:///android_asset/baidu.html");
        //加载url
        webView.loadUrl("https://www.hao123.com");
        //覆盖webview默认通过第三方或者系统浏览器打开网页的行为
        webView.setWebViewClient(new HelloWebViewClient ());
        //webviewclinet帮助webview除了一些页面的处理
        webView.setWebViewClient(new HelloWebViewClient());
        //开启js
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        //加载页面有限使用缓存加载
        webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
        //检测加载进度
        webView.setWebChromeClient(new WebChromeClient(){
            @Override
            public void onProgressChanged(WebView view, int newProgress) {
//                super.onProgressChanged(view, newProgress);
                System.out.print("newprogress:"+newProgress);
                if (newProgress == 100){
                    //网页加载完毕
                    if (progressDialog != null&&progressDialog.isShowing()){
                        progressDialog.dismiss();
                        progressDialog = null;
                    }
                }else {
                    //网页正在加载,打开ProgressBar
                    //初始化
                    if (progressDialog == null){
                        progressDialog = new ProgressDialog(WebActivity.this);
                        //显示风格
                        progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                        //标题
                        progressDialog.setTitle("测试");
                        //最大进度
                        progressDialog.setMax(100);
                        progressDialog.show();
                    }else {
                        //设置进度
                        progressDialog.setProgress(newProgress);
                    }
                }
            }
        });
    }

    //Web视图
    private class HelloWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            //false -- 自带浏览器  true -- 第三方
            return false;
        }
    }

    //改写物理返回键

    @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);//退出程序
//                  finish();//退出页面
            }
        }
        return super.onKeyDown(keyCode, event);
    }
}
<



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: