WebSettings
WebSettings webSettings = mWebView.getSettings();
webview.requestFocusFromTouch();//支持获取手势焦点,输入用户名、密码或其他
setJavaScriptEnabled(true);//支持js
setPluginsEnabled(true);//支持插件
webSettings.setRenderPriority(RenderPriority.HIGH);//提高渲染的优先级设置自适应屏幕,两者合用
setUseWideViewPort(true);//将图片调整到适合webview的大小
setLoadWithOverviewMode(true);// 缩放至屏幕的大小
setSupportZoom(true);//支持缩放,默认为true。是下面那个的前提。
setBuiltInZoomControls(true);//设置内置的缩放控件。//若上面是false,则该WebView不可缩放,这个不管设置什么都不能缩放。
setDisplayZoomControls(false);//隐藏原生的缩放控件setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);//支持内容重新布局 supportMultipleWindows();//多窗口
setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);//关闭webview中缓存
setAllowFileAccess(true);//设置可以访问文件
setNeedInitialFocus(true);//当webview调用requestFocus时为webview设置节点setJavaScriptCanOpenWindowsAutomatically(true);//支持通过JS打开新窗口 setLoadsImagesAutomatically(true);//支持自动加载图片
setDefaultTextEncodingName("utf-8");//设置编码格式
关于缓存
缓存模式
LOAD_CACHE_ONLY: 不使用网络,只读取本地缓存数据
LOAD_DEFAULT: (默认)根据cache-control决定是否从网络上取数据。
LOAD_NO_CACHE: 不使用缓存,只从网络获取数据.
LOAD_CACHE_ELSE_NETWORK,只要本地有,无论是否过期,或者no-cache,都使用缓存中的数据。
- 结合使用(离线加载):
if (NetStatusUtil.isConnected(getApplicationContext())) { webSettings.setCacheMode(WebSettings.LOAD_DEFAULT); //根据cache-control决定是否从网络上取数据。 }else { webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); //没网,则从本地获取,即离线加载 } webSettings.setDomStorageEnabled(true);// 开启 DOM storage API 功能webSettings.setDatabaseEnabled(true);//开启 database storage API 功能 webSettings.setAppCacheEnabled(true);//开启 Application Caches 功能 String cacheDirPath = getFilesDir().getAbsolutePath() + APP_CACAHE_DIRNAME; webSettings.setAppCachePath(cacheDirPath);//设置 Application Caches 缓存目录 **注意:**每个 Application 只调用一次 WebSettings.setAppCachePath(),WebSettings.setAppCacheMaxSize() 加载方式 **加载一个网页:** webView.loadUrl("[http://www.google.com/](http://www.google.com/)"); **加载apk包中的一个html页面** webView.loadUrl("file:///android_asset/test.html"); **加载手机本地的一个html页面的方法:** webView.loadUrl("content://com.android.htmlfileprovider/sdcard/test.html"); WebViewClient **WebViewClient就是帮助WebView处理各种通知