【发布时间】:2013-04-30 10:35:57
【问题描述】:
我在Chrome Packaged App 中使用HTML5 FileSystem API 写入日志文件。我希望用户能够下载这个文件,所以我尝试了一些类似的东西:
fs.root.getFile('log.txt', {create: false}, function(fileEntry) {
var url = fileEntry.toURL();
// do something with the file url
});
但这无济于事,因为 URL 类似于 filesystem:chrome-extension://eekedjcagggbfigdmifkmhkjbhiklnpj/temporary/log.txt,无法在某处打开它。
您会推荐什么技术来使打包应用程序中的 FileSystem API 文件可下载?
编辑:在阅读了下面 Ben Well 的 answer 之后,我意识到我必须进一步澄清我想要什么。如果有一种技术不意味着加载 HTML5 文件系统 API 文件内容、从中构建一个 blob 并将其写入用户选择的路径(chrome.fileSystem API),那对我来说似乎特别好。
【问题讨论】:
-
您知道打包应用程序的意图是不同于网络应用程序,对吧?考虑到这一点,我认为您想要的是某种“此站点正在尝试向您发送一些东西,您想保留它吗?”,什么是与 Web 服务器“事物”通信的 Web 应用程序。如果您采用原生应用程序的思维方式,您将拥有的最常见机制是:将文件保存在某处,在屏幕上呈现内容或将其复制到剪贴板。帮助我们帮助您,您愿意做什么以及为了实现这一目标您可以放弃什么?谢谢
-
我非常清楚为什么我想将它作为一个打包的应用程序而不是构建一个 Web 应用程序。我只是在寻找 API 术语中最方便的方法来通过 HTML5 文件系统 API 保存信息(不需要用户首先为此进行交互)并使其可供用户保存 - 理想情况下可以节省额外的步骤构建文件的 blob 对象。
标签: google-chrome fileapi google-chrome-app html5-filesystem