android之WebView详解

来源:互联网 发布:友情女王免费网络调教 编辑:程序博客网 时间:2024/05/22 09:03

        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;@Overrideprotected 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() {@Overridepublic 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支持缓存浏览历史页面 */@Overridepublic 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;}@Overridepublic 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。

原创粉丝点击