如何使用Java设置和读取cookie值

时间:2016-07-05 03:26:27

标签: javascript java android cordova cookies

我正在开发移动应用程序,我使用HTML 5,Ajax,jQuery和CSS构建它。
我写了以下代码来存储loged-in用户ID和名称;

<script>
    document.cookie = "id="+"1";
    document.cookie = "name="+"Demo Name";
</script>

我还编写了这个函数,用它的名字来读取cookie的值;

function readCookie(name) {
    name += '=';
    for (var ca = document.cookie.split(/;\s*/), i = ca.length - 1; i >= 0; i--)
        if (!ca[i].indexOf(name))
            return ca[i].replace(name, '');
}

我调用以下内容将已登录用户的名称读入名为name的变量;

var name = readCookie('name'); 

上面的代码在Web浏览器上测试时工作正常,但是当我尝试在移动应用程序中运行它(使用Phonegap编译)时,var名称返回&#34; undefined&#34;,这意味着脚本是无法读取cookie值。

请有人帮我解决这个问题!

我无法弄清楚我做了什么或者是否遗漏了什么。

我需要使用cookie来验证我的移动应用程序中的登录用户。

谢谢

2 个答案:

答案 0 :(得分:0)

On Phonegap document.cookie为空,因为index.html和所有其他文件都加载了file://协议。 Phonegap在内部管理cookie,但不公开任何清除它的功能。

您可能想看一下插件:

https://github.com/bez4pieci/Phonegap-Cookies-Plugin

该插件的工作原理如下:

window.cookies.clear(function() {
    console.log('Cookies cleared!');
});

答案 1 :(得分:0)

我经过长时间的挖掘后找到了解决办法...... Cookie无法在移动应用上运行(使用webview或类似功能),因此我使用的是本地存储。

为了存储我的数据,我使用了

window.localStorage.setItem("key", "value");

要检索数据,我只需使用

var data = window.localStorage.getItem("key");

就是这样......它在iOS,Android和Windows Mobile上运行良好。