今天春哥技术博客来总结下安卓APP开发中的Android webview用法。
1. 打开网页时不调用系统浏览器, 而是在本WebView中显示:
mWebView.setWebViewClient(newWebViewClient(){@OverridepublicbooleanshouldOverrideUrlLoading(WebViewview,Stringurl){view.loadUrl(url);returntrue;}});
2. 通过java代码调用javascript
WebSettingswebSettings=mWebView.getSettings();webSettings.setJavaScriptEnabled(true);mWebView.addJavascriptInterface(newObject(){publicvoidclickOnAndroid(){mHandler.post(newRunnable(){publicvoidrun(){webview.loadUrl("javascript:wave()");}});}},"demo");
3. 按返回键时, 不退出程序而是返回上一浏览页面:
publicbooleanonKeyDown(intkeyCode,KeyEventevent){if((keyCode==KeyEvent.KEYCODE_BACK)&&mWebView.canGoBack()){mWebView.goBack();returntrue;}returnsuper.onKeyDown(keyCode,event);}
4. 打开页面时, 自适应屏幕:
WebSettingswebSettings=mWebView.getSettings();webSettings.setUseWideViewPort(true);//设置此属性,可任意比例缩放webSettings.setLoadWithOverviewMode(true);
5. 便页面支持缩放:
WebSettingswebSettings=mWebView.getSettings();webSettings.setJavaScriptEnabled(true);webSettings.setBuiltInZoomControls(true);webSettings.setSupportZoom(true);
6.如果webView中需要用户手动输入用户名、密码或其他,则webview必须设置支持获取手势焦点。
webview.requestFocusFromTouch();
7.WebView 加载界面主要调用三个方法:LoadUrl、LoadData、LoadDataWithBaseURL.
1、LoadUrl直接加载网页、图片并显示.(本地或是网络上的网页、图片、gif)2、LoadData显示文字与图片内容(模拟器1.5、1.6)3、LoadDataWithBase显示文字与图片内容(支持多个模拟器版本)
8.WebSettings 的常用方法介绍
setJavaScriptEnabled();setPluginsEnabled();setUseWideViewPort();setSupportZoom();setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);supportMultipleWindows();setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);setAllowFileAccess();setNeedInitialFocus();//当webview调用requestFocus时为webview设置节点setJavaScriptCanOpenWindowsAutomatically();setLoadsImagesAutomatically();
9.WebViewClient 的方法全解
doUpdateVisitedHistory(WebViewview,Stringurl,isReload)onPageFinished(WebViewview,Stringurl)errorCode,Stringdescription,StringfailingUrl)oldScale,newScale)