-1

大家好,我正在使用phonegap 开发一个应用程序。我的应用程序在 android 和 blackberry 上运行良好,但在 symbian 上却无法运行。

在其中一个页面上,我设置了 cookie,例如:

 $.cookie("userName", userName, { path: '/' });
 $.cookie("currentTime", currentTime, { path: '/' });

在另一个页面上,我尝试像这样访问它:

alert($.cookie('userName'));

但是警报显示为“null”,尽管相同的代码在 android 和 blackberry 上运行良好。
Symbian 是否支持 cookie?

4

2 回答 2

0

尝试另一种 JS 代码进行测试

// Function that create a cookie and set its value
function setCookie(name, value, expiryDate) {
document.cookie = escape(name) + "=" + escape(value) + "; path=/" +
    ((expiryDate == null) ? "" : "; expires=" + expiryDate.toGMTString());
}


// Function that gets the cookies value
function getCookie(name) {
var cookieName = name + "=";
var documentCookie = document.cookie;
var start, end;

if(documentCookie.length > 0) {
    start = documentCookie.indexOf(cookieName);
    if(start != -1) {
        start += cookieName.length;
        end = documentCookie.indexOf(";", start);
        if(end == -1) end = documentCookie.length;

        return unescape(documentCookie.substring(start, end));
    }
}
return null;
}

您可以使用

setCookie('cookieName', value, cookieExpiry);

并获得它的价值

getCookie('cookieName')
于 2012-07-27T09:26:05.850 回答
0

Nokia 中的 WGZ 小部件不支持 cookie,但作为一种解决方法,我开始使用小部件,但好像它是一个 localStorage 对象;这是一个片段......我希望它有所帮助

干杯

if (!window.localStorage) {

if(typeof(widget)==='undefined')
{
//alert('working with an OS5 blackberry');
 window.localStorage = {
getItem: function (sKey) {
  if (!sKey || !this.hasOwnProperty(sKey)) { return null; }
  return unescape(document.cookie.replace(new RegExp("(?:^|.*;\\s*)" + escape(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*((?:[^;](?!;))*[^;]?).*"), "$1"));
},
key: function (nKeyId) { return unescape(document.cookie.replace(/\s*\=(?:.(?!;))*$/, "").split(/\s*\=(?:[^;](?!;))*[^;]?;\s*/)[nKeyId]); },
setItem: function (sKey, sValue) {
  if(!sKey) { return; }
  document.cookie = escape(sKey) + "=" + escape(sValue) + "; path=/";
  this.length = document.cookie.match(/\=/g).length;
},
length: 0,
removeItem: function (sKey) {
  if (!sKey || !this.hasOwnProperty(sKey)) { return; }
  var sExpDate = new Date();
  sExpDate.setDate(sExpDate.getDate() - 1);
  document.cookie = escape(sKey) + "=; expires=" + sExpDate.toGMTString() + "; path=/";
  this.length--;
},
hasOwnProperty: function (sKey) { return (new RegExp("(?:^|;\\s*)" + escape(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=")).test(document.cookie); }
};
window.localStorage.length = (document.cookie.match(/\=/g) || window.localStorage).length;
}
else
{ 
//alert('working with widgets');
window.localStorage={
 getItem: function (sKey) {
    return widget.preferenceForKey(sKey);
},

setItem: function (sKey, sValue) {
  widget.setPreferenceForKey(sValue, sKey);
},
length: 0,
removeItem: function (sKey) {
   widget.setPreferenceForKey(null,sKey );
},
hasOwnProperty: function (sKey) { 
     return widget.preferenceForKey(sKey)!==null;
}
};
}
}    
于 2012-07-27T17:24:12.587 回答