webSettings顾名思义,他是webView相关设置的集合,可以设置是否支持javaScript,设置缩放等等
缩放设置相关
// 设置可以支持缩放
webSettings.setSupportZoom(true);
// 设置出现缩放工具
webSettings.setBuiltInZoomControls(true);
//设置可在大视野范围内上下左右拖动,并且可以任意比例缩放
webSettings.setUseWideViewPort(true);
//设置默认加载的可视范围是大视野范围
webSettings.setLoadWithOverviewMode(true);
//自适应屏幕
webSettings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
//去掉缩放按钮
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) {
// Use the API 11+ calls to disable the controls
webSettings.setBuiltInZoomControls(true);
webSettings.setDisplayZoomControls(false);
} else {
// Use the reflection magic to make it work on earlier APIs
getControlls();
}
}
private void getControlls() {
try {
Class webview = Class.forName("android.webkit.WebView");
Method method = webview.getMethod("getZoomButtonsController");
method.invoke(this, true);
} catch (Exception e) {
e.printStackTrace();
}
}
LayoutAlgorithm是一个枚举类取值有:
SINGLE_COLUMN:把所有内容放大到webview等宽的一列中。
NORMAL:正常显示不做任何渲染。
NARROW_COLUMNS:可能的话让所有列的宽度不超过屏幕宽度。
TEXT_AUTOSIZING:文本自动分级
存储相关的设置
// 设置支持本地存储
webSettings.setDatabaseEnabled(true);
//设置路径
webSettings.setDatabasePath(path);
//设置存储模式
webSettings.setCacheMode(WebSettings.LOAD_DEFAULT);
//设置缓存
webSettings.setAppCacheEnabled(true);
存储模式有:
1,LOAD_CACHE_ONLY: 不使用网络,只读取本地缓存数据
2,LOAD_DEFAULT: 根据cache-control决定是否从网络上取数据。
3,LOAD_CACHE_NORMAL: API level 17中已经废弃, 从API level 11开始作用同LOAD_DEFAULT模式
4,LOAD_NO_CACHE: 不使用缓存,只从网络获取数据.
5,LOAD_CACHE_ELSE_NETWORK,只要本地有,无论是否过期,或者no-cache,都使用缓存中的数据。
数据加载相关设置
webSettings.setBlockNetworkImage(true);//是否加载图片
webSettings.setLoadsImagesAutomatically(true);//是否异步加载数据
javaScript交互相关设置
webSettings.setJavaScriptEnabled(true);
Dom Storage设置
webSettings.setDomStorageEnabled(true);
说明:开启domStorage可以确保html5中iframe标签加载正常
这是开发中常用的一些设置,如果想了解更多设置请自行查看api