和AngerlarJs混合的日子-cookie存取问题

js交互

AngerlarJs

/angular-cookies/angular-cookies.min.js 下文件改为/angular-cookies/angular-cookies.js里面的内容 然后将

this.$get = ['$$cookieReader', '$$cookieWriter', function($$cookieReader, $$cookieWriter) {

//下面重写get put remove方法。

get: function(key) {
     var value = JsGKey.getMessage(key);
          return value;
    //    return $$cookieReader()[key];
        },
put: function(key, value, options) {
     JsPutKey.getMessage(key,value);
 //  $$cookieWriter(key, value, calcOptions(options));
},
remove: function(key, options) {
     JsRemoveKey.getMessage(key);
   //    $$cookieWriter(key, undefined, calcOptions(options));
      }

在android 下面

webview.addJavascriptInterface(new TmActivity.JsGKey(), "JsGKey");
 webview.addJavascriptInterface(new TmActivity.JsPutKey(), "JsPutKey");
 webview.addJavascriptInterface(new TmActivity.JsRemoveKey(), "JsRemoveKey");
private class JsGKey {
        @JavascriptInterface
        public String getMessage(String key) {
            String cookie = CookieManager.getInstance().getCookie(domain);
            JSONObject jsonObject = null;
            String value = null;
            if (cookie!=null) {
                try {
                    jsonObject = new JSONObject(cookie);
                    value = jsonObject.getString(key);
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }

            return value;
        }
    }
public class JsPutKey {
    @JavascriptInterface
    public void getMessage(String key, String value) {
        String cookie = CookieManager.getInstance().getCookie(domain);
        JSONObject jsonObject = null;
        String result;
        if (cookie == null) {
            try {
                jsonObject = new JSONObject();
                result= String.valueOf(jsonObject.put(key,value));
                CookieManager.getInstance().setCookie(domain, result);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        } else {
            try {
                jsonObject = new JSONObject(cookie);
                jsonObject.put(key, value);
                CookieManager.getInstance().setCookie(domain, String.valueOf(jsonObject));
                String ck = CookieManager.getInstance().getCookie(domain);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }
}
public class JsRemoveKey {
        @JavascriptInterface
        public void getMessage(String key) {
       //删除目前没有想好应对的办法
        String cookie = CookieManager.getInstance().getCookie(domain);
            JSONObject jsonObject = null;
            if(cookie == null){
                return;
            }else{
                try {
                    jsonObject = new JSONObject(cookie);
                    jsonObject.remove(key);
                    CookieManager.getInstance().setCookie(domain, String.valueOf(jsonObject));
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
          }
        }

如果大家转帖请标记好原创地址https://my.oschina.net/u/3407708/blog。

猜你喜欢

转载自my.oschina.net/u/3407708/blog/920066