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