我正在开发移动应用程序,我使用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来验证我的移动应用程序中的登录用户。
谢谢
答案 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上运行良好。