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);
    
        }
    

      

  • 相关阅读:
    Chrome使用video无法正常播放MP4视频的解决方案
    ArcGIS 按掩膜裁剪地形
    bilibili 分P视频 需下载哔哩哔哩投稿工具
    U盘/硬盘数据恢复
    visio 2010、2013、2016、2019安装包
    经纬度WGS84地理坐标系转换成CGCS2000坐标系步骤,必备!
    Git 配置多个用户邮箱以及在 Sourcetree 中使用
    Chrome 插件 一键保存当前打开的所有标签页
    Cesium粒子系统学习
    破解ArcGIS坐标系之惑: 从基本概念到常用操作
  • 原文地址:https://www.cnblogs.com/zmaibbs7/p/4850371.html
Copyright © 2011-2022 走看看