TideSDK如何保存cookie以便在不同的文件中访问?

时间:2014-09-25 16:49:22

标签: cookies titanium tidesdk

我正在尝试使用TideSDK的Ti.Network来设置我的cookie的名称和值。 但是如何从其他页面获取此cookie的价值?

            var httpcli;
            httpcli = Ti.Network.createHTTPCookie();
            httpcli.setName(cname); //cname is my cookie name
            httpcli.setValue(cvalue);  //cvalue is the value that I am going to give my cookie
            alert("COOKIE value is: "+httpcli.getValue()); 

如何从下一页检索此Cookie值?提前谢谢!

1 个答案:

答案 0 :(得分:1)

好的,有很多方法可以在tidesdk上创建存储内容。 cookies可能是其中之一,但不是必需的。

在我个人的意见中,cookie太有限,无法存储信息,因此我建议您将用户信息存储在JSON文件中,这样您就可以将单个信息存储到大型结构(取决于项目)。假设您有一个项目,客户端必须将应用程序配置存储为“首选路径”以存储文件或保存字符串(例如名字,姓氏),您可以使用Ti.FileSystem来存储和读取此类信息。:

在下面的示例中,我使用jQuery在文件中读取存储的json字符串:

文件内容(conf.json):

{
    "fname" : "erick",
    "lname" : "rodriguez",
    "customFolder" : "c:\\myApp\\userConfig\\"
}

注意:由于某种原因,Tidesdk无法解析json结构,因为它将conf.json解释为文本文件,因此如果删除所有选项卡和空格,解析将起作用:

{"fname":"erick","lname":"rodriguez","customFolder":"c:\\myApp\\userConfig\\"}

现在让我们读它....(myappfolder是你的存储文件夹的路径)

readfi = Ti.Filesystem.getFile(myappfolder,"conf.json");
Stream = Ti.Filesystem.getFileStream(readfi);
Stream.open(Ti.Filesystem.MODE_READ);
contents = Stream.read();
contents = JSON.parse(contents.toString);
console.log(contents);

现在让我们存储它......

function saveFile(pathToFile) {
    var readfi,Stream,contents;
    readfi = Ti.Filesystem.getFile(pathToFile);
    Stream = Ti.Filesystem.getFileStream(readfi);
    Stream.open(Ti.Filesystem.MODE_READ);
    contents = Stream.read();
    return contents.toString();
};

//if a JSON var is defined into js, there is no problem
var jsonObject = {
   "fname":"joe",
   "lname":"doe",
   "customFolder" : "c:\\joe\\folder\\"
}

var file = pathToMyAppStorage + "\\" + "conf.json";
var saved = writeTextFile(file,JSON.stringify(jsonObject));
console.log(saved);