Android与H5混合开发中获取H5存储在localStorage中的数据信息
来源:互联网 发布:adobe pdf mac 编辑:程序博客网 时间:2024/05/16 18:50
Android与H5混合开发中获取H5存储在localStorage中的数据信息
android在开发中与H5交互,互相对方的方法已经不是啥稀罕事,因此有了混合开发,而在开发中,或许某些功能需要获取H5存储于localStorage中的值,在实现此功能上有两种方法可以获取,与其说是两种,不如说一种,因为这两种方法大同小异。
- 双方合作实现
- Android单方实现
(一) 双方合作实现
1.android端实现addjavascriptInterface
web.addJavascriptInterface(new H5LocalStorageCacheSize(MainActUI.this), "getH5CacheSize"); //获取信息
上句代码中,"getH5CacheSize"是双方拟定的对象,用来调用需要调用的方法,addJavascriptInterface则是为webview添加所需要传值的方法。
2.H5LocalStorageCacheSize这个类中实现了调用的方法如下:
public class H5LocalStorageCacheSize { private Context context; public H5LocalStorageCacheSize(Context context){ this.context=context; } @JavascriptInterface public void getCacheSize(String cacheSize){ Log.i("cpf", "getCacheSize: "+cacheSize+"======================="); }}
H5在传输中只需要调用 getH5CacheSize.getCacheSize(“20.07M”); 就可以将缓存大小传递给android端。
(二) Android单方实现
如果将这个功能只让Android单方实现的话无非就是把H5的工作交给Android来做,这就需要Android人员需要具备一定的H5知识。
1.如上编写H5LocalStorageCacheSize类。
2.如上添加 addJavascriptInterface这个接口
3.编写js实现获取localStorage中的cachesize变量,调用双方共知的H5LocalStorageCacheSize中的getCacheSize(String cacheSize)来回调获取缓存大小,代码如下,
web.loadUrl("javascript:(function(){var localStorage = window.localStorage; window.getH5CacheSize.getCacheSize(localStorage.getItem('cachesize'))})()");
通过以上代码就会在log中显示出缓存大小。
而我们在开发项目中获取缓存大小无非就是用来显示多少,提供用户清除缓存的功能,想想,我们既然能够获取到缓存大小,如果清除成功后,那直接将localStorage中的缓存大小设置为0.00M不就好了,如下
String js = "window.localStorage.setItem('cachesize','" + cacheSize + "');"; String jsUrl = "javascript:(function({ var localStorage = window.localStorage; localStorage.setItem('cachesize','" + cacheSize + "') })()"; //2.根据不同版本,使用不同的 API 执行 Js if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { web.evaluateJavascript(js, null); } else { web.loadUrl(jsUrl);// web.reload(); } if (!cacheSize.isEmpty()) { web.loadUrl("javascript:ClearWithCache('" + cacheSize + "')"); informH5CacheSize.destoryRun(); }
以上代码借鉴如下链接,感谢
http://blog.csdn.net/u011240877/article/details/52839845
- Android与H5混合开发中获取H5存储在localStorage中的数据信息
- H5中localStorage存储信息
- Hybrid:Android 中如何获取和写入 H5 localStorage 数据
- H5-localStorage数据存储总结
- Android+H5混合开发
- Android H5交互Webview实现localStorage数据存储
- Android与H5交互(混合开发)
- 混合开发 H5 与 ios、android 交互
- h5 sessionStorage localStorage存储
- H5 localstorage存储文件
- H5 localStorage 轻量级存储
- H5 js中的localStorage与sessionStorage
- AppInterface,一套Android与H5的混合开发框架
- b+c 模式 H5 与 Android 混合 开发详解
- android webview与H5混合开发,webview自定义缓存
- h5本地存储localStorage,sessionStorage
- H5本地存储LocalStorage缺点
- H5永久本地存储:localStorage
- Log4j2的简要使用
- springboot下配置resource路径下的静态资源
- java-
- iOS APP互相调用
- Python 4、模块
- Android与H5混合开发中获取H5存储在localStorage中的数据信息
- 微信测试号自定义菜单
- springboot测试环境中为什么会将mongodb的数据自动存储到test表中
- Oracle笔记第二篇----索引及查询性能优化
- hdfs环境搭建,datanode启动失败解决办法。
- Android自定义组件之自动换行View
- SEM经验-2
- 微信支付的坑
- iOS开发之集成ijkplayer视频直播