android之WebView详解
2013-09-17 17:36
495 查看
WebView是一个使用开源的WebKit引擎的浏览器控件,可以将其当成一个浏览器来用,WebView能够搜索网址、查看电子邮件、播放视频节目,其不仅支持HTML、CSS等静态元素,还支持JavaScript.
★WebView浏览网页
★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。
★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。
相关文章推荐
- Android Naive与WebView的互相调用详解
- Android webview使用详解
- Android WebView 开发详解(一)
- WebView详解与简单实现Android与H5互调
- 【android学习】WebView详解
- 最全面的Android Webview详解
- Android WebView Video完全详解(第一篇)-Android开发人员
- Android中webview与JS交互、互调方法实例详解
- Android WebView缓存策略详解
- Android WebView 开发详解(一)
- Android WebView 开发详解(一)
- Android WebView缓存机制详解
- Android之PullToRefresh(ListView 、GridView 、WebView)使用详解和总结
- Android webview使用详解
- Android之WebView详解
- Android Webview上的ssl warning的处理方式详解及实例
- Android webview使用详解
- Android WebView缓存机制详解
- Android:WebView 使用漏洞详解与解决方案