我正在开发的扩展程序的组件需要扩展程序来保存文件,然后(稍后)再次打开这些文件。据我所知,只要知道下载目录,就可以完成。保存很简单,只需使用:
chrome.downloads.download({
url: fileData,
filename: "/AppGeneratedSubFolder/"+fileName,
conflictAction:'overwrite',
saveAs:false
}
如果我在清单中包含了正确的权限并且允许访问文件网址,那么我可以执行打开过程"用户检查框。
然后我可以使用以下方法访问该文件:
var missing = "userInputRightNow"
var open= "file:///"+missing+"/AppGeneratedSubFolder/"+fileName;
chrome.windows.create({
url:open,
type:'popup',
state: 'maximized',
focused:true,
});
但是,这需要我以某种方式获取标记为缺失的变量的内容。我通过将用户引导到下一页(即,在新窗口中打开它)并告诉他们将目录复制到我的应用程序中的输入框中来完成此操作 - 然后保存该值以供应用程序将来使用:< / p>
chrome://settings/?search=Ask%20where%20to%20save%20each%20file%20before%20downloading
但是,我想知道是否有更好的方法。我广泛理解不将用户的文件系统暴露给扩展API的设计决策。但是,我想知道我是否错过了一些工作: