WebView

webView的基本参数设置

// WebSettings:webView的配置参数
    WebSettings settings = mWebView.getSettings();
    // 设置支持js
    settings.setJavaScriptEnabled(true);
    // 设置缩放按钮
    settings.setBuiltInZoomControls(true);
    // 设置双击缩放
    settings.setUseWideViewPort(true);

webView高级回调对象WebViewClient
 //覆盖WebView默认使用第三方或系统默认浏览器打开网页的行为,使网页用WebView打开
       webView.setWebViewClient(new WebViewClient(){
           @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            // TODO Auto-generated method stub
               //返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器
             view.loadUrl(url);
            return true;
        }
       });



// 回调对象:提供处理方法的对象
    // WebViewClient:webView的回调对象可以防止打开系统自带的浏览器
    // 同时提供三个处理方法
    // 网页开始加载onPageStarted
    // 网页结束加载onPageFinished
    // 重写加载地址
    mWebView.setWebViewClient(new WebViewClient() {
        /***
         * 方法 加载前显示缓冲视图
         * 
         * @param view
         * @param url
         * @param favicon
         */
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            // TODO Auto-generated method stub
            super.onPageStarted(view, url, favicon);
            findViewById(R.id.progressBar).setVisibility(View.VISIBLE);
        }

        /***
         * 方法 关闭缓冲视图
         * 
         * @param view
         * @param url
         */
        @Override
        public void onPageFinished(WebView view, String url) {
            // TODO Auto-generated method stub
            super.onPageFinished(view, url);
            findViewById(R.id.progressBar).setVisibility(View.GONE);
        }

        /***
         * 方法 重写地址的加载路径 针对跳转的路径而不是loadUrl的路径
         * 
         * @param view
         * @param url
         * @return
         */
        // @Override
        // public boolean shouldOverrideUrlLoading(WebView view, String url)
        // {
        // Log.i("wzx", url);
        // // mWebView.loadUrl("http://192.168.22.205:8080/");
        // return true;//重写了地址
        // }
    });

webView高级回调对象WebChromeClient
// 再学习一个回调对象 
    // WebChromeClient:谷歌浏览器 提供进度加载方法的回调对象
    //onProgressChanged:用来获取加载中的进度变化
    mWebView.setWebChromeClient(new WebChromeClient() {
        /***
         * 方法 进度加载方法
         * 
         * @param view
         * @param newProgress
         *            加载中的进度百分比
         */
        @Override
        public void onProgressChanged(WebView view, int newProgress) {
            super.onProgressChanged(view, newProgress);
            Log.i("wzx", "newProgress" + newProgress);
            ProgressBar percent = (ProgressBar) findViewById(R.id.progress_percent);
            if (newProgress == 100) {
                // 在加载完成可以关闭水平进度的显示
                percent.setVisibility(View.GONE);
            } else {
                percent.setVisibility(View.VISIBLE);
                percent.setProgress(newProgress);
            }
        }
    });

修改WebView的文字字号
mWebView.getSettings().setTextSize(TextSize.LARGEST);  //超大号字体      
mWebView.getSettings().setTextSize(TextSize.LARGER);   //大号字体       
mWebView.getSettings().setTextSize(TextSize.NORMAL);   //正常字体           
mWebView.getSettings().setTextSize(TextSize.SMALLER);  //小号字体             
mWebView.getSettings().setTextSize(TextSize.SMALLEST);  //超小号字体

如果希望浏览的网页后退而不是退出浏览器,需要WebView覆盖URL加载,让它自动生成历史访问记录,那样就可以通过前进或后退访问已访问过的站点。
//改写物理按键——返回的逻辑
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        if(keyCode==KeyEvent.KEYCODE_BACK)
        {
            if(webView.canGoBack())
            {
                webView.goBack();//返回上一页面
                return true;
            }
            else
            {
                System.exit(0);//退出程序
            }
        }
        return super.onKeyDown(keyCode, event);
    }



WebView的缓存
优先使用缓存
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
不使用缓存:
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

if (!isNetworkConnected()) {
  webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
}
webView.loadUrl(URL);





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值