如何从chrome app中的用户选定目录加载本地文件

时间:2016-08-09 10:46:45

标签: google-chrome-app

我正在开发chrome app,在我的应用程序用户可以将外部内容下载到他们的本地目录,访问用户的文件系统我正在使用 chrome.FileSystem API,我可以访问用户的本地目录,我也可以通过将用户选择的目录保存到localStorage来将下载的内容写入其目录。

我的问题是我想使用webview / iframe在主html文件中打开这些文件,如果可能使用iframe会更好但我在两种情况下都会出错 -

获取完整路径我正在使用下面的代码 -

chrome.fileSystem.getDisplayPath(chosenEntry, function(path) {
      console.log("path"+path);
      // for now i am adding static path to it for testing purpose 
      var finalPath = path+'/folder/index.html'; //Here finalPath is a valid path , can be accessible from browser

});

如果我使用iFrame加载它 -

  

拒绝框架'路径',因为它违反了以下内容安全策略指令:“frame-src'self'blob:filesystem:data:chrome-extension-resource:”。

当我尝试使用webview时 -

  

:加载已中止且错误-301:ERR_DISALLOWED_URL_SCHEME。

我还试过在manifest.json文件中给予权限 -

"permissions": [
    "file:///*"
]
  

注意:用户可能拥有下载内容的数量,每个内容都有自己的文件夹,因此我必须根据用户操作打开其中任何内容。

1 个答案:

答案 0 :(得分:0)

这不是最优雅的解决方案,但在Chrome应用中运行web server内部Chrome并将webview指向网络服务器网址即可。