您的位置:首页 > 移动开发

android之WebView详解

2013-09-17 17:36 495 查看
        WebView是一个使用开源的WebKit引擎的浏览器控件,可以将其当成一个浏览器来用,WebView能够搜索网址、查看电子邮件、播放视频节目,其不仅支持HTML、CSS等静态元素,还支持JavaScript.

★WebView浏览网页

public class MainActivity extends Activity {

private EditText et_uri;
private Button btn;
private WebView webView;

private final int BACK = 0;
private final int FORWARD = 1;
private final int CLEAR_CACHE = 2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

et_uri = (EditText)findViewById(R.id.et_uri);
btn = (Button)findViewById(R.id.search);
webView = (WebView)findViewById(R.id.webView);

//处理各种通知和请求事件,如果不使用该句代码,
//将使用内置浏览器访问网页,不会显示在WebView上
webView.setWebViewClient(new WebViewClient());

btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
String uri = et_uri.getText().toString().trim();
/**
* loadUrl()可以装载任何有效的网址
* 1.浏览Internet上的网页
* 2.浏览本地网页文件
* webView.loadUrl("file:///sdcard/test.html");
*/
if(URLUtil.isNetworkUrl(uri)){
webView.loadUrl(uri);
}else {
Toast.makeText(MainActivity.this, "输入的网址不正确!", Toast.LENGTH_LONG).show();
}
}
});
}

/**
* WebView支持缓存浏览历史页面
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);

menu.add(0, BACK, 0, "向后(back)");
menu.add(0, FORWARD, 0, "向前(forward)");
menu.add(0, CLEAR_CACHE, 0, "清除缓存");
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

switch(item.getItemId()){
case BACK:
webView.goBack();
break;
case FORWARD:
webView.goForward();
break;
case CLEAR_CACHE:
/**includeDiskFiles if false, only the RAM cache is cleared
* true:硬盘文件和RAM缓存全部清除
* false:只清除RAM缓存
*/
webView.clearCache(true);

}

return super.onOptionsItemSelected(item);
}
}


★WebView浏览HTML

        ◇WebView还可以直接装载HTML代码有以下两个方法:

public void loadData(String data, String mimeType, String encoding);

public void loadDataWithBaseURL(String baseUrl, String data, 

String mimeType, String encoding, String failUrl);

data:html代码

mimeType:Mime类型,一般为text/html

encoding:html代码编码

baseUrl:获取相对路径的跟URL,null默认为about:blank

failUrl:如果html代码装载失败,则则装载该html。

◇支持javascript

        WebView默认是不支持JavaScript的用以下方法设置:

//打开JavaScript功能

webView.getSettings().setJavaScriptEnabled(true);

//设置处理JavaScript的引擎

webView.setWebChromeClient(new WebChromeClient());

        ◇WebView放大缩小网页

webView.getSettings().setSupportZoom(true);

webView.getSettings().setBuiltlnZoomControls(true);

        ◇本地资源的获取

        文件若位于工程中的assets目录下,如果要在HTML代码中显示apk文件中的assets目录中的资源必须以

“file://android_asset”开头,后面跟文件和路径名,注意asset后面没有s。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: