-1

こんにちは、phonegap を使用してアプリケーションを開発しています。私のアプリケーションは android と blackberry では正常に動作しますが、symbian では動作しません。

ページの 1 つで、次のような Cookie を設定しました。

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

別のページで、次のようにアクセスしようとします:

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

ただし、アラートには「null」が表示されますが、同じコードが Android と Blackberry で完全に機能します。
Symbian は Cookie をサポートしていますか?

4

2 に答える 2

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 に答える
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 に答える