Android WebView详解
MainActivity.java
packagecom.example.web;importandroid.app.Activity;importandroid.app.ProgressDialog;importandroid.content.Intent;importandroid.net.Uri;importandroid.os.Bundle;importandroid.view.KeyEvent;importandroid.view.Menu;importandroid.view.MenuItem;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.webkit.WebChromeClient;importandroid.webkit.WebSettings;importandroid.webkit.WebView;importandroid.webkit.WebViewClient;importandroid.widget.Button;publicclassMainActivityextendsActivityimplementsOnClickListener{privateWebViewwebView;privateProgressDialogdialog;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ButtonintentButton=(Button)findViewById(R.id.intent);ButtonwebviewButton=(Button)findViewById(R.id.webviewButton);init();intentButton.setOnClickListener(this);webviewButton.setOnClickListener(this);}@OverridepublicvoidonClick(Viewv){switch(v.getId()){//使用内置系统浏览器打开网页caseR.id.intent:Intentintent=newIntent(Intent.ACTION_VIEW);Uriuri=Uri.parse("http://www.baidu.com");intent.setData(uri);//Intentintent=newIntent(Intent.ACTION_VIEW,uri)startActivity(intent);break;caseR.id.webviewButton://webview默认使用系统浏览器打开网页,setWebViewClient让网页在webview中打开webView.loadUrl("http://www.baidu.com");break;default:break;}}privatevoidinit(){webView=(WebView)findViewById(R.id.webView);//WebView加载本地资源//webView.loadUrl("file:///android_asset/example.html");webView.getSettings().setJavaScriptEnabled(true);webView.setScrollBarStyle(0);webView.getSettings().setAllowFileAccess(true);webView.getSettings().setBuiltInZoomControls(true);//WebView加载页面优先使用缓存加载webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);//覆盖WebView默认通过第三方或者是系统浏览器打开网页的行为,使得网页可以在WebView中打开webView.setWebViewClient(newWebViewClient(){@OverridepublicbooleanshouldOverrideUrlLoading(WebViewview,Stringurl){//WebViewClient帮助WebView去处理一些页面控制和请求通知//返回值是true的时候控制网页在WebView中去打开,如果为false调用系统浏览器或第三方浏览器去打开view.loadUrl(url);returntrue;}});//打开网页时添加进度条webView.setWebChromeClient(newWebChromeClient(){@OverridepublicvoidonProgressChanged(WebViewview,intnewProgress){//newProgress1-100之间的整数if(newProgress==100){//网页加载完毕,关闭ProgressDialogcloseDialog();}else{//网页正在加载,打开ProgressDialogopenDialog(newProgress);}}privatevoidcloseDialog(){if(dialog!=null&&dialog.isShowing()){dialog.dismiss();dialog=null;}}privatevoidopenDialog(intnewProgress){if(dialog==null){dialog=newProgressDialog(MainActivity.this);dialog.setTitle("正在加载");dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);dialog.setProgress(newProgress);dialog.show();}else{dialog.setProgress(newProgress);}}});}//改写物理按键——返回的逻辑@OverridepublicbooleanonKeyDown(intkeyCode,KeyEventevent){if(keyCode==KeyEvent.KEYCODE_BACK){//Toast.makeText(this,webView.getUrl(),//Toast.LENGTH_SHORT).show();if(webView.canGoBack()){webView.goBack();//返回上一页面returntrue;}else{System.exit(0);//退出程序}}returnsuper.onKeyDown(keyCode,event);}}
参考文章:
http://www.cnblogs.com/mengdd/archive/2013/03/01/2938295.html
视频:
http://www.imooc.com/video/2269
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。