native 嵌套 h5(localstorage) 本地存储问题
2016-10-21 15:46
316 查看
native 嵌套h5 本地存储问题,按照正常逻辑来说(localStorage、sessionStorage),本是没有任何问题的。
但是 native 嵌套之后,问题就出现了,就是localStorage/sessionStorage 存储值的时候出问题了,都会在native 端报 null,无法使用本地存储,难道是这样吗?难道不支持吗?瞬间,你会感觉到一大堆的问题都在h5上。
其实是http请求与https请求的问题,https请求,native 权限的事儿,iOS如何设置权限就不知道了,
Android webview 如何打开本地存储,提供给JS调用 HTML5 的lwindow.localStorage功能
PS:Java的navtive代码只要设置了以上参数,就可以为JS端提供本地存储了,但是这个参数需要API>=7使用,也就是android2.1版本以上才可以。
但是 native 嵌套之后,问题就出现了,就是localStorage/sessionStorage 存储值的时候出问题了,都会在native 端报 null,无法使用本地存储,难道是这样吗?难道不支持吗?瞬间,你会感觉到一大堆的问题都在h5上。
其实是http请求与https请求的问题,https请求,native 权限的事儿,iOS如何设置权限就不知道了,
Android webview 如何打开本地存储,提供给JS调用 HTML5 的lwindow.localStorage功能
<code class="hljs java has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"> mWebView = (WebView) <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">this</span>.findViewById(R.id.webview); WebSettings settings = mWebView.getSettings(); settings.setJavaScriptEnabled(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">true</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//settings.setPluginsEnabled(true); </span> <span class="hljs-javadoc" style="color: rgb(136, 0, 0); box-sizing: border-box;">/***打开本地缓存提供JS调用**/</span> mWebView.getSettings().setDomStorageEnabled(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">true</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// Set cache size to 8 mb by default. should be more than enough </span> mWebView.getSettings().setAppCacheMaxSize(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1024</span>*<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1024</span>*<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">8</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// This next one is crazy. It's the DEFAULT location for your app's cache </span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// But it didn't work for me without this line. </span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// UPDATE: no hardcoded path. Thanks to Kevin Hawkins </span> String appCachePath = getApplicationContext().getCacheDir().getAbsolutePath(); mWebView.getSettings().setAppCachePath(appCachePath); mWebView.getSettings().setAllowFileAccess(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">true</span>); mWebView.getSettings().setAppCacheEnabled(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">true</span>); </code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li></ul><div class="save_code tracking-ad" data-mod="popu_249" style="box-sizing: border-box; position: absolute; height: 60px; right: 30px; top: 5px; color: rgb(255, 255, 255); cursor: pointer; z-index: 2;"><a target=_blank target="_blank" style="color: rgb(202, 0, 0); box-sizing: border-box;"><img src="http://static.blog.csdn.net/images/save_snippets.png" style="border: none; box-sizing: border-box; max-width: 100%;" alt="" /></a></div><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li></ul>
PS:Java的navtive代码只要设置了以上参数,就可以为JS端提供本地存储了,但是这个参数需要API>=7使用,也就是android2.1版本以上才可以。
相关文章推荐
- native 嵌套 h5 本地存储问题
- html5本地存储localStorage 存储json对象存储格式问题
- H5本地存储LocalStorage缺点
- h5 localStorage本地存储
- H5本地存储sessionStorage和localStorage的区别
- H5永久本地存储:localStorage
- H5笔记1-本地存储localStorage
- H5本地存储LocalStorage的属性与方法
- H5的浏览器本地存储localStorage在IE中的坑
- H5本地存储sessionStorage和localStorage的区别
- H5本地存储localStorage、sessionStorage
- html5本地存储localStorage 存储json对象存储格式问题
- h5本地存储的sessionStorage和localStorage
- H5本地存储localStorage
- HTML5 LocalStorage 本地存储
- JavaScript本地存储实践(html5的localStorage和ie的userData)
- HTML5 LocalStorage 本地存储
- JavaScript本地存储实践(html5的localStorage和ie的userData)的实例页面
- JavaScript本地存储实践(html5的localStorage和ie的userData)
- JavaScript本地存储实践(html5的localStorage和ie的userData)