打开,创建文件并在客户端保存数据并重用该数据

时间:2014-03-17 11:22:28

标签: javascript io google-chrome-app

我正在使用普通的javascript和bootstrap创建一个chrome应用程序。最初用户必须提供一些数据,应用程序会保留该数据并在下次重复使用。我想我必须存储它 文件中的数据。我可以使用普通的javascript文件IO来做到这一点,还是有一种特殊的方式来实现它的chrome风格。 (因为在打包的应用程序中禁用了某些功能)

1 个答案:

答案 0 :(得分:2)

您认为Chrome打包应用未启用localstorage是正确的。但是,根据您管理的数据类型,有两个API可以使用。

chrome.storage.local是一个通用的键值存储,可以在本地计算机上保存数据(chrome.storage.sync是一个相同的API,也可以在用户的​​设备之间同步数据,但我不会推荐用于大文件)

API易于使用:

chrome.storage.local.set({myKey: "myValue"}, function() {
    if (!chrome.runtime.lastError) {
        console.log("The value has been stored!");
    } else {
        console.error("There was an error!");
    }
});

chrome.storage.local.get("myKey", function(data) {
    if (!chrome.runtime.lastError) {
        console.log("The value is " + data.myKey);
    } else {
        console.error("There was an error!");
    }
});

(如果你正在使用chrome.storage.sync,那么你可能还想为chrome.storage.onChanged事件添加一个监听器,以便知道何时从另一个位置更改了数据)

另一种方式可能是您所谓的“普通javascript文件IO” - 打包应用程序支持W3C File System API。您可以从用户请求存储空间并存储可以使用JavaScript读取和写入的实际文件。它有一个很好的介绍here