javascript - 在 Chrome 应用程序中保存没有保存对话框的文件

标签 javascript google-chrome google-chrome-app

在我的 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);
});

现在我需要避免弹出保存对话框,将这个文件保存在一个预定义的位置。

这可能吗?

最佳答案

如果您想要持久数据但又不想让用户知道数据在本地计算机上的位置,您有多种选择:

这些都不会为您提供用户可以访问的真实文件。如果用户(除了您自己的应用程序之外)需要能够访问您编写的文件,则需要询问用户将文件放在哪里。正如 Cerbrus 在对您的问题的评论中所说,将文件静默放置在用户计算机上的某个位置将是一个安全问题。

Chrome 31 中的一项新功能是 chrome.fileSystem.retainEntry .使用此 API,您的应用程序将能够在应用程序重新启动时保留多个文件条目,包括目录,这样您就不必一直烦扰用户选择文件位置。据我了解,允许用户选择的位置存在限制,因此恶意应用无法引导用户指示 Chrome 覆盖系统文件。

关于javascript - 在 Chrome 应用程序中保存没有保存对话框的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20836604/

相关文章:

google-chrome - Chrome的--auto-open-devtools-for-tabs

facebook-graph-api - Chrome 打包应用程序和 Facebook 重定向 url

javascript - 无法在 Chrome 应用程序中加载 AWS SDK

javascript - Vue-Router:全局为路由添加查询值

javascript - 在 Canvas 上绘制 CSS 变换(缩放、旋转、左、右)

javascript - 是否可以在 spotfire 文本区域显示图像/消息以等待数据加载?

javascript - Google Chrome 中的 Canvas 点击区域是否仍然可用?

javascript - Webstorm Karma 测试运行程序无法与 Yeoman Angular-fullstack 一起使用

html - 页面底部的 chrome 空间,虽然不是本地的

push-notification - 如何检测我的 chrome 打包应用程序是否已安装?