告诉你怎么发现的
现在webApp越来越多,很多为了更新方便都用了H5来制作,安卓客户端变轻了,webView中的很多设置也使用频繁了。最近公司一个项目加载一个https的页面,我同事说怎么也加载不出来,但是在浏览器上确没有问题。找了很久的资料,很多人说是SSL证书的关系,后来问了服务器,并没有用证书。最后我抱着试一试的心理加上了很多Settings设置,没想到页面显示出来了,一个一个排查,最后发现是它起了作用。
https页面加载不出来就用它:
setting.setDomStorageEnabled(true);//设置DOM Storage缓存
而DomStorage包括Session Storage和Local Storage两种,你还可以这样设置。
webview.getSettings().setDatabaseEnabled(true);
webview.getSettings().setDatabasePath("/data/data");
webSettings.setDomStorageEnabled(true);
接下来是webView中一下常用的Setting介绍:
setJavaScriptEnabled(true) ;//支持js脚本
setPluginsEnabled(true) ;//支持插件
setUserWideViewPort(false) ;//将图片调整到适合webview的大小
setSupportZoom(true) ;//支持缩放
setLayoutAlgorithm(LayoutAlgrithm.SINGLE_COLUMN) ;//支持内容从新布局
supportMultipleWindows() ;//多窗口
setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK) ;//关闭webview中缓存
setAllowFileAccess(true) ;//设置可以访问文件
setNeedInitialFocus(true) ;//当webview调用requestFocus时为webview设置节点
setjavaScriptCanOpenWindowsAutomatically(true) ;//支持通过JS打开新窗口
setLoadsImagesAutomatically(true) ;//支持自动加载图片
setBuiltInZoomControls(true);//支持缩放
webView.setInitialScale(35);//设置缩放比例
webView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);//设置滚动条隐藏
webView.getSettings().setGeolocationEnabled(true);//启用地理定位
webView.getSettings().setRenderPriority(RenderPriority.HIGH);//设置渲染优先级
webView大部分的settings都在这里了,希望对大家有帮助。
接下来我还会出几篇有关WebViewClient和WebChromeClient的文章,一起学习WebView。