[Cordova] 在Cordova運用Storage達成暫存資訊的功能(假Session)

摘要:[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();