Android WebView 支持H5 DOM Storage
vue项目里,路由不跳转,Storage存储有问题
使用html5的 localStorage 存不进去也读不出来
加 mWebView.getSettings().setDomStorageEnabled(true);
什么是DOM Storage
HTML5 是下一代 HTML 标准,开始吸引越来越多人的目光。HTML5 的 DOM Storage 机制提供了一种方式让程序员能够把信息存储到本地的计算机上,在需要时获取。这点和 cookie 相似,区别是 DOM Storage 提供了更大容量的存储空间。
DOM Storage 分为 sessionStorage 和 localStorage。
localStorage 对象和 sessionStorage 对象使用方法基本相同,它们的区别在于作用的范围不同。sessionStorage 用来存储与页面相关的数据,它在页面关闭后无法使用。而 localStorage 则持久存在,在页面关闭后也可以使用。
Android中如何支持
Android 中WebView是一款很强大的控件。如何支持H5的本地存储呢?
如下设置即可(本公司App就是这样设置,是可行的)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | private WebView mWebView; ... //初始化操作 private void initmWebView() { //设置支持JS mWebView.getSettings().setJavaScriptEnabled( true ); // 设置支持本地存储 mWebView.getSettings().setDatabaseEnabled( true ); //取得缓存路径 String path = getActivity().getApplicationContext().getDir( "cache" , Context.MODE_PRIVATE).getPath(); //设置路径 mWebView.getSettings().setDatabasePath(path); //设置支持DomStorage mWebView.getSettings().setDomStorageEnabled( true ); //设置存储模式 mWebView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); //设置适应屏幕 mWebView.getSettings().setUseWideViewPort( true ); mWebView.getSettings().setLoadWithOverviewMode( true ); mWebView.getSettings().setSupportZoom( true ); mWebView.getSettings().setBuiltInZoomControls( true ); mWebView.getSettings().setDisplayZoomControls( false ); //设置缓存 mWebView.getSettings().setAppCacheEnabled( true ); mWebView.requestFocus(); //下面三个各种监听 mWebView.setWebChromeClient(wcc); mWebView.setDownloadListener(dl); mWebView.setWebViewClient(wvc); //加载连接 mWebView.loadUrl(XXXXXXXX); } |
补充一下:APP内所有的WebView都要配置这个
多个参考文档:
http://blog.csdn.net/carson_ho/article/details/52693322
http://www.cnblogs.com/oakpip/archive/2011/04/08/2009800.html
http://blog.csdn.net/hello_12413/article/details/48895913
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步