WebView的使用

WebView可以直接加载网页,支持html格式,用起来非常简单方便,使用时记得添加Internet权限

首先声明:

private WebView mWebView;

实例化:

mWebView=(WebView)findViewById(R.id.web_view);

使用:

mWebView.loadUrl(String url);//此方法可以加载两种不同的链接
 //加载web资源
 mWebView.loadUrl("http://www.baidu.com");
 //加载本地资源
 mWebView.loadUrl("file://android_asset/xx.html");
 本地资源文件放在:assets文件中

使页面获取焦点

mWebView.requestFocus();

取消滚动条

mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);

处理页面导航,使得页面点击时还是在WebView中进行

mWebView.setWebViewClient(new WebViewClient(){
    //重写此方法    
    @override
    public boolean shouldOverrideUrlLoading(WebView view,String url){
        view.loadUrl(url);
        return true;//返回值为true控制网页在WebView中去打开,如果为false调用系统浏览器或者第三方浏览器    
    }
});

WebView的一些设置:通常使用WebView中的WebSettings来设置

//在WebView中使用javascript
WebSettings settings=mWebView.getSetting();//获取WebView的WebSettings
settings.setJavaScriptEnable(true);//启用javascript功能
//还有这些
settings.setSaveFormData(false);//是否保存表单数据
settings.setDefaultTextEncodingName("UTF-8");//编码格式
settings.setSupportZoom(true);//支持缩放

类似的,在WebView中可以优先使用缓存,可以优化用户的体验,如过每次进入一个页面都需要加载的话,会比较慢

//优先使用缓存:
settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
//不使用缓存:
settings.setCacheMode(WebSettings.LOAD_NO_CACHE);

由于有些页面加载比较慢,所以需要判断页面的加载过程,给用户显示加载进度

mWebView.setWebChromeClient(new WebChromeClient(){
    @override
    public void onProgressChange(WebView view,int newProgress){
        if(newProgress==100){
            //加载完毕
        }else{
            //加载中
        }
    }
});

在webView中倒退页面:需要在Activity中重写此方法

@Override
public boolean onKeyDown(int keyCode,KeyEvent event){
    if(keyCode==KeyEvent.KEYCODE_BACK) {
        mWebView.goBack();//返回上一页面
        return true;
    }else{
        System.exit(0);//退出程序
    }
    return super.onKeyDown(int keyCode,KeyEvent event);
}

你可能感兴趣的:(WebView的使用)