zoukankan      html  css  js  c++  java
  • 手机 简易浏览器 WebView的基本使用 返回 缓存 进度条

    public class MainActivity extends AppCompatActivity {
        private WebView webView;
        private String url = "http://2014.qq.com/";
        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(url);
            //重写shouldOverrideUrlLoading方法使网页可以在应用中显示 而不是系统浏览器
            webView.setWebViewClient(new WebViewClient() {
                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url) {
    //                return super.shouldOverrideUrlLoading(view, 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() {
                @Override
                public void onProgressChanged(WebView view, int newProgress) {
                    if (newProgress == 100) {
                        //加载完毕 关闭ProgressDialog
                        closeDialog();
                    } else {
                        //正在加载 打开ProgressDialog
                        openDialog(newProgress);
                    }
                }
            });
    
        }
    
        private void openDialog(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);
            }
        }
    
        private void closeDialog() {
            if(dialog != null && dialog.isShowing()){
                dialog.dismiss();       //取消显示
                dialog = null;
            }
        }
    
        //改写手机物理按键 返回逻辑
        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            if(keyCode ==  KeyEvent.KEYCODE_BACK){
    
                if(webView.canGoBack()) {
                    webView.goBack();   //返回上一页面
                    return true;
                }
                else {
                    System.exit(0);     //推出程序n b
                }
            }
            return super.onKeyDown(keyCode, event);
    
        }
    

      

  • 相关阅读:
    俞洪敏励志演讲
    svn 提交排除目录
    (二)2005年我的第一次软件行业创业,烧掉30万、2年时间打水漂的惨痛教训
    COM+ System Application 服务无法启动方法
    版本库迁移(合并)的实现
    没有为此解决方案配置选中要生成的项目
    Oracle 10g 下载地址
    JQuery插件开发[转]
    Web开发中的Form Submit Successful
    网页栅格系统研究(4):技术实现
  • 原文地址:https://www.cnblogs.com/zmaibbs7/p/4850371.html
Copyright © 2011-2022 走看看