前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hybrid:Android 中如何获取和写入 H5 localStorage 数据

Hybrid:Android 中如何获取和写入 H5 localStorage 数据

作者头像
张拭心 shixinzhang
发布2018-01-05 16:20:15
3.6K0
发布2018-01-05 16:20:15
举报

Native 获取 localStorage 的数据

主要分三步:

  1. 写个接口,接收 Js 回调
  2. 添加到 WebView
  3. 主动调用 Js 获取

比如我要获取保存在 LocalStorage 中的 userKey 字段:

1.写个接口,接收 Js 回调

代码语言:javascript
复制
public class HybridInterface {
    Context context;

    InitCityInterface(Context context) {
        this.context = context;
    }

    //Js 回调方法,
    @JavascriptInterface
    public void getUserKey(String userKey){
        LogUtils.e("WebViewFragment","读取到userKey : " + userKey);
        //已经拿到值,进行相关操作
    }

}

2.添加到 WebView ,并且重命名为“shixintest”:

代码语言:javascript
复制
mWebView.addJavascriptInterface(new HybridInterface(getActivity()), "shixintest");

3.主动调用 Js 获取 /** * 获取 H5 保存在 LocalStorage 中的 __UserKey */

代码语言:javascript
复制
private void getLocalStorageUserKey() {
    if (mWebView != null && TextUtils.isEmpty(APPEnvironment.getBeforeLoginUserKey())) {
        mWebView.loadUrl(
            "javascript:(function(){
                var localStorage = window.localStorage; window.shixintest.getUserKey(localStorage.getItem('userKey'))})()");
}
}

getLocalStorageUserKey() 会通过 Js 读取 LocalStorage 的内容,然后通过 HybridInterface 传递过来。

就酱紫拿到了 LocalStorage 中的内容。

Native 写入数据到 localStorage

主要分两步:

  1. 拼接 JavaScript 代码
  2. 使用 WebView 相关 API 执行 Js 代码

比如我要给 localStorage 中的 userAgent 字段写入内容:

代码语言:javascript
复制
//1.拼接 JavaScript 代码
String userAgent = "shixinzhang";
String js = "window.localStorage.setItem('userAgent','" + userAgent + "');";
String jsUrl = "javascript:(function({
    var localStorage = window.localStorage;
    localStorage.setItem('userAgent','" + userAgent + "')
})()";

//2.根据不同版本,使用不同的 API 执行 Js
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
    mWebView.evaluateJavascript(js, null);
} else {
    mWebView.loadUrl(jsUrl);
    mWebView.reload();
}   
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-10-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Native 获取 localStorage 的数据
  • Native 写入数据到 localStorage
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档