我是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
答案 0 :(得分:3)
mov ax,4C00h int 21h
是错误的API:
仅适用于在自助服务终端会话中运行的自助服务终端应用。
您应该致电requestFileSystem
询问用户他希望该文件夹创建的位置,然后保留该条目,这样您就不需要再次请求许可。
无法通过fileSystem.chooseEntry
询问用户,但您只能执行此操作一次。
一个好的chooseEntry
API示例是provided by Google。
注意,您可以使用fileSystem
以静默方式请求访问您应用的应用安装文件夹(如标题中所述)。但是,此访问权限是只读的。
如果您修改过该文件夹,无论如何,Chrome都会立即停用您的应用,因为它会保留从Chrome网上应用店下载的所有文件的哈希值。
作为一种潜在的解决方案,您可以在提示用户之前request a virtual filesystem,如果您不希望该提示成为您应用的第一件事。但要写出磁盘,你需要提示。因此,以这种方式过度复杂化是没有意义的 - 向用户解释您需要他/她选择保存位置。