如何以编程方式访问chrome app安装目录?

时间:2016-05-14 11:52:31

标签: google-chrome-app nw.js

我是Chrome应用程序开发的新手,几天前我使用NW开发了基于桌面的应用程序,现在我想为chrome开发相同的应用程序。

这就是我想要实现的目标 -

1.安装应用时,在用户的本地文件系统中创建文件夹(与app name相同)。

2.Storing /访问上面文件夹中的文件和文件夹。

这些问题可以通过chrome的文件系统API解决吗?如果是,那么请建议我的方式。

顺便说一句,我试图访问文件系统api,我的清单文件如下所示 -

{
  "manifest_version": 2,
  "name": "sampleApp",
  "short_name": "sampleApp",
  "description": "A Sample APP",
  "version": "0.0.1",
  "minimum_chrome_version": "38",

  "icons": {
    "16": "assets/images/icon_16.png",
    "128": "assets/images/icon_128.png"
  },
  "permissions": [
    {"fileSystem": ["write", "retainEntries", "directory","requestFileSystem"]},
    "unlimitedStorage",
    "system.network",
    "storage"
  ],
  "app": {
    "background": {
      "scripts": ["main.js"]
    }

  }
}

当我运行我的应用程序并尝试访问文件系统API时,我会在Chrome扩展区域看到警告 -

  

注意:我使用的是胜利10。

fileSystem.requestFileSystem' is not allowed for specified platform

1 个答案:

答案 0 :(得分:3)

mov ax,4C00h int 21h是错误的API:

  

仅适用于在自助服务终端会话中运行的自助服务终端应用。

您应该致电requestFileSystem询问用户他希望该文件夹创建的位置,然后保留该条目,这样您就不需要再次请求许可。

无法通过fileSystem.chooseEntry询问用户,但您只能执行此操作一次。

一个好的chooseEntry API示例是provided by Google

注意,您可以使用fileSystem以静默方式请求访问您应用的应用安装文件夹(如标题中所述)。但是,此访问权限是只读的。

如果您修改过该文件夹,无论如何,Chrome都会立即停用您的应用,因为它会保留从Chrome网上应用店下载的所有文件的哈希值。

作为一种潜在的解决方案,您可以在提示用户之前request a virtual filesystem,如果您不希望该提示成为您应用的第一件事。但要写出磁盘,你需要提示。因此,以这种方式过度复杂化是没有意义的 - 向用户解释您需要他/她选择保存位置。