我正在开发Chrome扩展,我想将一些数据永久保存在用户系统中,以便每次用户运行扩展时都可以检索这些数据。铬扩展 - 有没有办法永久保存文件?
有没有一种方法可以用铬的JavaScript API来实现这一点?
在此先感谢。
我正在开发Chrome扩展,我想将一些数据永久保存在用户系统中,以便每次用户运行扩展时都可以检索这些数据。铬扩展 - 有没有办法永久保存文件?
有没有一种方法可以用铬的JavaScript API来实现这一点?
在此先感谢。
这可能与webkitRequestFileSystem。 您将能够访问沙盒持久文件夹来创建和读取文件。
从您的描述中,听起来像使用Chrome Storage API更好,它将数据写入浏览器管理的数据库。它跨会话和浏览器重新启动。
chrome.storage.sync.set({'theKey': theValue}, optionalSuccessCallback);
只要是可序列化的,就可以使用任意数量的键和任何值。这很快,对于配置设置和类似情况特别有用。您的扩展需要请求权限:
"permissions": ["storage"]
如果你真的想创建文件(例如一堆MP3的,作为后来实际文件使用),阿纳托利是正确的,使用webkitRequestFileSystem。它需要相当多的回调:
function onInitFs(fs) {
fs.root.getFile('log.txt', {create: true}, function(fileEntry) {
// Create a FileWriter object for our FileEntry (log.txt).
fileEntry.createWriter(function(fileWriter) {
fileWriter.onwriteend = function(e) {
console.log('Write completed.');
};
fileWriter.onerror = function(e) {
console.log('Write failed: ' + e.toString());
};
// Create a new Blob and write it to log.txt.
var blob = new Blob(['Lorem Ipsum'], {type: 'text/plain'});
fileWriter.write(blob);
}, errorHandler);
}, errorHandler);
}
window.requestFileSystem(window.TEMPORARY, 1024*1024, onInitFs, errorHandler);
盐的颗粒:用于存储API(和HTML文件系统API),以真正使用“任意数字键和任何价值”您可能需要'“unlimitedStorage”'权限,并且'sync'存储上还有配额。 – Xan