WebView控件在Android中主要是加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页,在我们做项目的时候是使用机率非常大的组件之一。当然使用前是要添加网络访问权限。
我们在作用WebView加载网页时,通常是在初始化WebView控件之后,直接使用loadUrl()方法,传入我们要加载的连接地址即可。比如:webView.loadUrl("http://www.sina.com")就直接可以加载出新浪的网页面;当然我们也可以加载本地的文件,把文件放在项目的assets目录下,使用webView.loadUrl("file:///android_asset/xx.html")即可。
用户点击WebView中的页面链接时,一般是由默认的浏览器打开加载目标的URL,当然我们可以在WebView中覆盖这一行为,实现方式就是实现以地WebViewClient()中方法的改写。webVeiw.setWebViewClient(new WebViewClient());
WebView当然可以与JavaScript交互,前提是要在WebView设置启用JavaScript,方法很简单WebVeiw wv=(WebView)findViewById(R.id.wv);
WebSettings settings=webView.getSettings();
settings.setJavaScriptEnable(true);//调用这个方法,设置为true就可以开户与JavaScript交互了。
很多时候,我们要监听WebView加载网页面的进度,我们应该如何操作呢?实现起来也比较简单,有一个类WebChromeClient主要辅助WebView处理Javascript的对话框、网站图标、网站title、加载进度等。我们只需要在WebChromeClient中实现对应的方法就可以。比如:
webView.setWebChromeClient(new WebChromeClient(){
@OVerride
public void onProgreddChanged(WebView view,int newProgress){//newProgress就是代表加载进度,值在1-100之间
if(newProgress==100){//表示加载完成
//TODO做对应的处理
}else{//加载中
//TODO做相应的处理即可
}
}
});
另外我们还可以设置WebView使用缓存功能。
主要有以下两个方法:
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);//优先使用缓存
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);//不使用缓存
项目中处理加载网页时如何显示网页对应的标题呢?
mWebView.setWebChromeClient(new WebChromeClient() {
@Override
public void onReceivedTitle(WebView view, String mTitle) {
super.onReceivedTitle(view, mTitle);
//在这里处理标题显示
}
}