摘要:[Cordova] 在Cordova運用Storage達成暫存資訊的功能(假Session)
當我們運用Cordova進行App製作的時候,一定會遇到需要登入帳號與密碼的動作
以往我們透過網站的設計方式,可以將帳號的資訊放在Session之中,讓不同的頁面都能取得登入帳號的相關資料
但是在Cordova之中是無法使用的,不過換個方式,我們可以將這樣的資訊暫存在裝置上的儲存體之中,也可以透過讀取的方式來取用
本機儲存體的使用其實非常的簡單
當我們需要將資訊寫入到裝置的儲存體之中,可以使用這樣的語法來完成
window.localStorage.setItem("Key", "Value");
取用的方式也非常的簡單,如下面的語法所示
var _value = window.localStorage.getItem("Key");
在這裡要特別說明的是,由於放到裝置的儲存體中,只能放置"字串",不能存放"物件"
所以有需要存放物件的話,我們可以透過JSON.parse以及JSON.stringify來完成這樣的功能
下面這段程式碼,就說明了如何將一個物件轉放至裝置儲存體之中的方法
// 建立物件
var myObj = new myObject();
myObj.Name = "hi I'm maduka";
// 將物件轉換成JSON的字串,並放入裝置儲存體之中
var strMyObj = JSON.stringify(myObj);
window.localStorage.setItem("MyObject", strMyObj);
取出的方式也很簡單,程式碼可以參考如下
// 取出儲存體中的字串並轉換為物件
var strMyObj = window.localStorage.getItem("MyObject");
var myObj = JSON.parse(strMyObj);
// 顯示物件內容
var _myName = myObj.Name;
從上面提供的一些方法,可以很快速的將我們需要暫存的資料存放在裝置的儲存體中
不論是字串或是物件,都可以透過轉換的方式進行暫存
我自己寫了一個很簡單的Session物件,也讓大家有需要的人自行取用
// 這是Session物件,可以寫在js檔之中呼叫使用
function Session(strSessionName)
{
var _strSession = strSessionName;
this.setObject = function (data) {
// 將物件Parse成字串
var strUserObj = JSON.stringify(data);
window.localStorage.setItem(_strSession, strUserObj);
}
this.getObject = function ()
{
var strObject = window.localStorage.getItem(_strSession);
return JSON.parse(strObject);
}
}
// 下面是使用的方式,把SessionName參數改掉就可以直接使用了
// 將物件放入儲存體中暫存
new Session("UserInfo").setObject(objUser);
// 取出物件
var obj = new Session("UserInfo").getObject();