在我的 chrome 应用程序中,我正在将一些数据写入文件。 我使用了官网Storage APIs下可用的如下代码
chrome.fileSystem.chooseEntry({type: 'saveFile'}, function(writableFileEntry) {
writableFileEntry.createWriter(function(writer) {
writer.onerror = errorHandler;
writer.onwriteend = function(e) {
console.log('write complete');
};
writer.write(new Blob(['1234567890'], {type: 'text/plain'}));
}, errorHandler);
});
现在我需要避免弹出保存对话框,将这个文件保存在一个预定义的位置。
这可能吗?
最佳答案
如果您想要持久数据但又不想让用户知道数据在本地计算机上的位置,您有多种选择:
- 本地存储
- 索引数据库
- HTML5 文件 API
- > chrome.storage
- chrome.storage.sync
- > chrome.syncFileSystem
这些都不会为您提供用户可以访问的真实文件。如果用户(除了您自己的应用程序之外)需要能够访问您编写的文件,则需要询问用户将文件放在哪里。正如 Cerbrus 在对您的问题的评论中所说,将文件静默放置在用户计算机上的某个位置将是一个安全问题。
Chrome 31 中的一项新功能是 chrome.fileSystem.retainEntry .使用此 API,您的应用程序将能够在应用程序重新启动时保留多个文件条目,包括目录,这样您就不必一直烦扰用户选择文件位置。据我了解,允许用户选择的位置存在限制,因此恶意应用无法引导用户指示 Chrome 覆盖系统文件。
关于javascript - 在 Chrome 应用程序中保存没有保存对话框的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20836604/