• Android--WebView


    package com.cnn.webview03;
    
    import android.annotation.SuppressLint;
    import android.app.Activity;
    import android.app.ProgressDialog;
    import android.os.Bundle;
    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;
    import android.widget.ProgressBar;
    
    
    @SuppressLint("SetJavaScriptEnabled") public class MainActivity extends Activity {
        private WebView webView;
        private ProgressBar progressBar;
        private ProgressDialog dialog;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            webView=(WebView) findViewById(R.id.webView1);
            webView.loadUrl("http://sports.163.com/");
            //WebViewClient就是帮助WebView处理各种通知、请求事件的,具体来说包括
            //onLoadResource、onPageStart、onPageFinish、
            //onReceiveError、onReceivedHttpAuthRequest
            webView.setWebViewClient(new WebViewClient(){
                @Override
                //shouldOverrideUrlLoading:对网页中超链接按钮的响应。当按下某个连接时WebViewClient会调用这个方法,并传递参数:按下的url。
                public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    // TODO 自动生成的方法存根
                    view.loadUrl(url);
                    return true;
                }
            });
            //setWebChromeClient主要处理解析,渲染网页等浏览器做的事情
            //WebChromeClient是辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等 
            webView.setWebChromeClient(new WebChromeClient(){
                @Override
                public void onProgressChanged(WebView view, int newProgress) {
                    // TODO 自动生成的方法存根
                    if(newProgress==100){
                        closeDialog();
                    }
                    else {
                        openDialog(newProgress);
                    }
                }
    
                private void openDialog(int newProgress) {
                    // TODO 自动生成的方法存根
                    if(dialog==null){
                        dialog=new ProgressDialog(MainActivity.this);
                    }
                    dialog.setTitle("加载中。。。");
                    dialog.setProgress(newProgress);
                    dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                    dialog.show();
                }
    
                private void closeDialog() {
                    // TODO 自动生成的方法存根
                    dialog.dismiss();
                    dialog=null;
                }
            });
            
            WebSettings settings = webView.getSettings();
            settings.setJavaScriptEnabled(true);
            settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
        }
        
        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            // TODO 自动生成的方法存根
            if(keyCode==KeyEvent.KEYCODE_BACK)
            {
                if (webView.canGoBack()) {
                    webView.goBack();
                    return true;
                } else {
                    System.exit(0);
                }
            }
            return super.onKeyDown(keyCode, event);
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            int id = item.getItemId();
            if (id == R.id.action_settings) {
                return true;
            }
            return super.onOptionsItemSelected(item);
        }
    }
  • 相关阅读:
    微信支付 h5
    微信支付 h5
    Android stadio butternife工具
    Android stadio butternife工具
    Android stadio 自定义debug release keystore
    Android stadio 自定义debug release keystore
    Android 微信支付步骤
    Android 微信支付步骤
    t
    t
  • 原文地址:https://www.cnblogs.com/zxcnn/p/5070165.html
Copyright © 2020-2023  润新知