2016-07-05 85 views
0

我正在使用HTML 5,Ajax,jQuery和CSS構建移動應用程序。
我寫了以下代碼來存儲內置的用戶ID和名稱;
如何使用Java設置和讀取cookie值

<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'); 

,同時在網頁瀏覽器進行測試,但是當我嘗試在移動應用中運行(與PhoneGap的編譯)以上工作正常的代碼中,變量名稱返回「不確定」,這意味着該腳本不能夠讀取cookie值..

請任何人都可以幫助我在這裏!

我不知道我做了什麼,或者如果我錯過了什麼。

我需要使用cookie來驗證我的移動應用程序中登錄的用戶。

感謝

回答

0

在PhoneGap的document.cookie是空的,因爲index.html和其他所有文件都加載file://協議。 Phonegap在內部管理cookie,但不公開任何清除它們的功能。

你可能想看看插件:

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

該插件類似如下:

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

這不適合我。我想要的是一個解決方案,可以設置cookie,並在webview中讀取cookie的值。清除cookie不是問題,因爲我總是可以將它設置爲空值 –

0

我已經找到了一個長期挖掘後的解決方案...
Cookie無法在移動應用上使用(使用webview或類似),所以我改用本地存儲。

來存儲我的數據,我用

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

檢索數據,我只是用

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

這就是它......它工作正常在iOS,Android和Windows Mobile。