android - HTML5 FileSystem API Android Chrome 访问 sdcard

标签 android html google-chrome filesystems html5-filesystem

我正在尝试创建一个能够访问大量文件的 HTML5 应用程序。因此,我查看了 FileSystem API,以便能够从本地文件系统读取文件。

我使用 phonegap File API 进行了 PoC,一切都按预期工作,我能够在 Chrome 桌面上使用 FileSystem API 产生类似的结果...

但是我遇到了一个严重的问题,虽然我可以在 Desktop 中访问我的文件系统,但我无法从 Android Chrome 访问 sdcard。我尝试使用这个演示:

http://html5-demos.appspot.com/static/filesystem/filer.js/demos/index.html

我可以在桌面上从我的本地系统中选择文件:我的图片等...但我不能用 Android Chrome 做同样的事情

如何在 Android Chrome 中访问设备文件系统/sdcard?

最佳答案

来自 this article on HTML5 Rocks :

重要的是要记住这个文件系统是沙盒的,这意味着一个网络应用程序无法访问另一个应用程序的文件。这也意味着您无法将文件读/写到用户硬盘驱动器上的任意文件夹(例如“我的图片”、“我的文档”等)。

FileSystem API 旨在让您的应用程序创建和操作文件,这些文件将在您的应用程序的使用之间持续存在。它不能用于从其沙箱外部公开任意文件。

或者,File API可用于读取(但不能修改)整个系统中的文件。但是,File API 不能用于读取系统上的任意文件。它的用法基于 HTMLs <input type=file>标签,用户必须明确输入要读取的文件。

以上内容适用于在 Android Chrome 中运行的应用程序,就像在桌面版 Chrome 中一样,因此除非用户愿意使用输入来授予对所需文件的访问权限,否则你就不走运了。但是,您提到您还尝试使用 PhoneGap 进行 PoC。 PhoneGap File API ,虽然主要作为 HTML5 实现的包装器,但有一些细微的差别,主要是它允许访问 SD 卡上的任意文件。使用 API 调用时 window.requestFileSystem() ,你的成功回调将有一个参数,一个 FileSystem对象,其中 root属性是对/sdcard 文件夹的引用。这可用于遍历您的 SD 卡并在其中的任何位置创建 FileReader 和 FileWriters。

关于android - HTML5 FileSystem API Android Chrome 访问 sdcard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15483936/

相关文章:

javascript - 第一个函数调用 html 按钮 onclick,但不调用任何其他函数

javascript - 幻灯片的第一个元素不显示,按钮也不起作用

javascript - addEventListener 在 Firefox 和 Chrome 中不起作用

仅 CSS 工具提示,不适用于 Chrome 12.0.742.30 dev

java - 在Android中共享到应用程序时如何制作叠加层?

java - Android Java 定时器()

android - 谷歌地图放大和缩小android

android - React Native - 如果应用程序 Y 已安装,应用程序 X 如何打开应用程序 Y

html - 如何去除 border-radius 后 Angular 上的白色像素

javascript - XMLHttpRequest 无法加载 Access-Control-Allow-Origin 不允许的来源