WebView的简单使用

webview的简单使用

代码中说明;部分代码:
private WebView webview;
private ProgressBar bar;
private TextView titles;
private WebSettings settings;
private int currentSize = 2;
private int mSize;

webview = (WebView) findViewById(R.id.webview);
webview.loadUrl("http://www.baidu.com");
settings = webview.getSettings();
settings.setBuiltInZoomControls(true);// 显示缩放按钮
settings.setJavaScriptEnabled(true);// 支持JS
// 优先使用缓存           settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK)
//不使用缓存
//settings.setCacheMode(WebSettings.LOAD_NO_CACHE);

/**如果点击链接继续在browser中响应,而不是新开android的系统浏览器中响应该链接必须覆盖该方法*/
webview.setWebViewClient(new WebViewClient() {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
    view.loadUrl(url);
    return true;
    }

});

webview.setWebChromeClient(new WebChromeClient() {
    // 当进度发生变化调用
    @Override
    public void onProgressChanged(WebView view, int newProgress) {
    bar.setVisibility(View.VISIBLE);
    bar.setProgress(newProgress);
    if (newProgress == 100) {
        bar.setVisibility(View.INVISIBLE);
        }
    super.onProgressChanged(view, newProgress);
    }

    // 设置网页标题
    @Override
    public void onReceivedTitle(WebView view, String title) 
    {
        titles.setText(title);
        super.onReceivedTitle(view, title);
    }

    @Override
    public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {
        // 有警告时弹出警告框
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setTitle("警告");
        builder.setMessage(message);
        builder.setPositiveButton(android.R.string.ok, new OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                // 点击确定按钮后,继续执行网页的内容
                result.confirm();
                }
        });
        builder.setCancelable(false);// 点击空白出是否会取消
        builder.create();
        builder.show();

        return true;
        }

    });

}
/**点击按钮时,弹出设置页面字体大小的对话框*/

public void sizes(View view) {
    showDialog();
}

public void showDialog() {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("设置字体");
    String items[] = { "超大号字体", "大号字体", "正常字体", "小号字体", "超小号字体" };
    builder.setSingleChoiceItems(items, currentSize, new OnClickListener() {

    @Override
    public void onClick(DialogInterface dialog, int which) {
        mSize = which;
        }
    });
    builder.setPositiveButton("确定", new OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            switch (mSize) {
                case 0:
                //字体大小按百分比算的,100是正常字体,默认;
                    settings.setTextZoom(200);

                    break;
                case 1:
                    settings.setTextZoom(150);
                    break;
                case 2:
                    settings.setTextZoom(100);
                    break;
                case 3:
                    settings.setTextZoom(80);
                    break;
                case 4:
                    settings.setTextZoom(50);
                    break;
                }
                currentSize = mSize;

            }
        });
        builder.setNegativeButton("取消", null);
        builder.show();
    }

    /**
     * 如果不做处理,进入webview浏览网页,当点击返回按钮时,会直finsh()结束本身;
     * 
     * 如果浏览的网页希望回退而不是退出浏览器,需在当前activity中处理并消费掉该back事件
     */
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        if (keyCode == KeyEvent.KEYCODE_BACK && webview.canGoBack()) {
            webview.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值