安卓 - 无法访问sd卡上的html文件

4

我想在Chrome或其他网络浏览器中打开SD卡上的HTML文件(不是HTML查看器)。

我已经尝试像这样输入文件路径

 file:///storage/extSdCard/page/page.html

我收到了这个错误信息:
 ERR_ACCESS_DENIED

有什么问题吗?

编辑:我必须提到我并没有开发一个安卓应用程序。我只是想在移动浏览器chrome中查看我的SD卡上的html文件。

编辑2:它无法从外部SD卡和内部存储器中工作。

谢谢。


我认为你的HTML文件已经损坏了。我的意思是它没有正确格式化或者没有正确创建。首先检查一下文件大小。 - M D
你在清单文件中是否有读取外部SD卡的权限?http://developer.android.com/reference/android/Manifest.permission.html#READ_EXTERNAL_STORAGE - Joakim Palmkvist
7个回答

7
这是因为Chrome应用程序没有读取外部存储器的权限。
如果您需要这样的应用程序, 这里 是一个链接。
以下是 Chrome 应用程序权限列表....

您的帐户

  • 在设备上查找帐户
  • 添加或删除帐户
  • 在设备上使用帐户
  • 阅读 Google 服务配置

您的位置

  • 大致位置(基于网络)
  • 精确位置(基于 GPS 和网络)

网络通信

  • 查看网络连接
  • 控制近场通讯
  • 接收来自互联网的数据
  • 完全访问网络

存储

  • 修改或删除您的 USB 存储内容

系统工具

  • 测试对受保护存储的访问权限
  • 安装快捷方式

书签和历史记录

  • 编写Web书签和历史记录
  • 读取您的Web书签和历史记录

相机

  • 拍照和录制视频

麦克风

  • 记录音频

影响电池

  • 防止设备休眠
  • 控制振动

音频设置

  • 更改您的音频设置

同步设置

  • 读取同步统计信息
  • 切换同步开关
  • 读取同步设置

有没有可能在除了HTML查看器之外的其他地方查看我的HTML?如果不行,HTML查看器是否允许JS? - user2886091

2

有一种解决方法是(在侧载Chrome的设备上)


adb shell pm grant com.chrome.canary android.permission.READ_EXTERNAL_STORAGE

如果你不使用 Chrome 的金丝雀版本,那么 "com.android.chrome" 可能是它的名称。

这在某种程度上是有效的,但是仍然无法访问.html文件。 - Sridhar Ratnakumar

1

将您的HTML文件上传到任何应用程序的内部文件目录中。我将我的文件添加到默认浏览器应用程序的目录中。

然后在浏览器中输入以下URL:

file:///storage/sdcard/Android/data/com.android.browser/files/yourfile.html

它应该能够成功地渲染网页。

1

我遇到了同样的问题,事实上Chrome无法访问外部存储中的文件。如果您不想对手机进行root操作或将html文件移动到内部存储器中,请使用具有所需权限的其他浏览器,如Firefox。至少对我而言,这是可行的。


1
如上所述,谷歌没有访问该文件的权限。
但是其他浏览器可以轻松访问。我在我的安卓智能手机上使用Opera并使用这个URL时,它可以正常工作:
file:///storage/emulated/0/{folder-where-your-file-is}/file.html

0

我需要为自己的网站做同样的事情。我不想在互联网上查找我的网站,因为我会被谷歌广告收费点击它。 我将我的网站文件(index.html和所有文件夹)复制到内部存储下载文件夹中,创建了一个名为mywebsite.com的文件夹。 在Chrome浏览器中,我输入了以下内容:

file://com.estrongs.files/storage/emulated/0/Download/mywebsite.com/index.html

网站完美地打开了,所有链接的页面和图片都显示正常。 然后我将其添加到收藏夹中,这样我就不必再次输入长URL。 我展示的目录结构是在我的三星Android手机上。在其他Android或iPhone上可能会有所不同。关键是网站文件需要存储在内部存储器中,而不是SD卡上,因为Chrome没有访问外部存储器的权限。


0

我曾经遇到同样的问题,唯一找到解决方法的办法是将HTML文件复制或移动到设备的内部存储器中,这样在没有Root的情况下可以在Chrome中读取HTML文件。

另一种方法是对设备进行Root并更改权限,以允许Chrome访问sdCard。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接