前几天一直在做webview的相关显示,不同的属性设置会有不同的效果。经过几天的研究使用,下面是我在使用过程中的一些总结,与大家分享下:
WebSettings websetting = webview.getSettings(); //webview的许多属性都是通过websetting进行设置的
websetting.setJavaScriptEnabled(true); //可进行JS交互
1、缓存机制的相关设置:
websetting.setDomStorageEnabled(true); //支持文件存储
websetting.setDatabaseEnabled(true); //支持数据库存储
String appCacheDir = this.getApplicationContext().getDir("cache", Context.MODE_PRIVATE).getPath(); //缓存存储路径
websetting.setAppCachePath(appCacheDir); //设置缓存文件的路径
websetting.setAppCacheEnabled(true); //支持缓存
我们可以在有网的情况下将缓存模式改为websetting.setCacheMode(WebSettings.LOAD_DEFAULT);当没有网络时则设置为
websetting.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
websetting.setAllowFileAccess(true); // 可使用文件/
2、webview页面支持放大缩小,则设置如下:
websetting.setSupportZoom(true);
websetting.setBuiltInZoomControls(true);
websetting.setDisplayZoomControls(false); //放大缩小的图标不显示,true或者不设置则为显示
websetting.setUseWideViewPort(true); //若要网页根据屏幕显示则需设置此属性
websetting.setLoadWithOverviewMode(true);
3、当加载的页面出错或没有没有网络时,可以重写onReceivedError方法
new WebViewClient{
@Override
public void onReceivedError(WebView view, int errorCode,String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
//当出现错误信息时,该处内容为点击页面会有的响应
}
}
4、位webview设置cookie
我们可以自定义方法,然后将下面代码放入其中,
String cookie = "";
CookieSyncManager.createInstance(context);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.setCookie(url, cookie);
CookieSyncManager.getInstance().sync();
完成后,可以将该方法这只在onPageStart方法中。