如何使用钛将数据从服务器存储到本地设备?

how to store data to local device from server with titanium?

我想在第一次 time.I 尝试将其保留在 alloy.js 和 Ti.App.Properties.getString('login_token') 后用户使用 APP 时自动登录,但他们没有没用。

在我的咖啡里:

result = JSON.parse this.responseText
console.info result.token  #"dsfdsfds2142fds3r32rf32e3dfefwedf"
Ti.App.Properties.setString "token",result.token
console.info Ti.App.Properties.getString "token"  # it's blank

我找不到执行此操作的内置方法,所以我创建了一个 getter 和 setter 方法并将其放入 alloy.js。感觉非常 hacky 和肮脏,但它确实有效。

//retrieves the value of the token
// also checks if the token is valid and sets logged_in accordingly
function getToken(){
    var f = Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory,'api.txt');
    var content = f.read();

    //if we can read this return it, otherwise return a blank value
    if (content){
      return content.text;  
    }
    else {
        return '';
    }
}

//persists and sets the value of token to the new value
function setToken(key){
    var f = Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory,'api.txt');
    f.deleteFile();
    var f = Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory,'api.txt');
    f.write(key);
    token = key;
}