Cra*_*rks 68 javascript google-chrome google-chrome-extension
我正在使用Chrome扩展程序作为内部工具.它的必要行为是:
之前已经问过这个问题,但答案是" 使用NPAPI ",而NPAPI现在已经废弃了.
那么,目前实现这一目标的方法是什么?我看过的是:
我可以尝试另一种方法吗?
Rob*_*b W 50
你做了很多研究.实际上,常规网页无法在没有任何插件或扩展的情况下写入用户的文件系统.此外,正如您所观察到的,HTML5 Filesystem API仅提供对虚拟文件系统的访问.
但是,您将chrome.fileSystemAPI与HTML5 FileSystem API 混淆.与HTML FileSystem API不同,Chrome fileSystem(app)API可以直接写入用户指定的用户文件系统(例如~/Documents或%USERPROFILE%\Documents).
此API仅适用于Chrome 应用,不适用于扩展程序.这不是问题,特别是因为您正在开发内部工具,因为您可以安装应用程序和扩展,并使用消息传递在扩展(页面操作)和应用程序(文件系统访问)之间进行通信(示例).
关于chrome.downloads:由于您的扩展是内部扩展,因此您可以强制用户加入beta/dev频道以使用此API.此API的唯一限制是文件将保存在用户定义的Downloads文件夹的(子目录)中.
编辑:chrome.downloadsAPI现在可用于所有渠道,包括稳定分支(自Chrome 31以来).
我担心你已经完成了你的功课,这意味着你看了所有可能的选择.
实现您想要的最佳方式是(如您所述)使用支持本机应用程序并通过Native Messaging进行通信.顺便说一句,由于带宽很少是内部网的问题,您可能会发现传递资源(例如图像)URL并让应用程序下载并保存它们更简单.
(是的,它比简单地开发扩展程序更麻烦,但是必须做他们必须做的事情,对吧?)
另一方面,如果您愿意牺牲一点用户的开发简单性经验,我建议使用JS压缩库(例如JSZip)组合HTML5好东西(允许您在本地创建和下载文件),因此用户只需下载一个zip文件(并且只提示一次).顺便说一句,如果用户希望,他/她可以选择总是在没有提示的情况下下载文件(但你已经知道了).
| 归档时间: |
|
| 查看次数: |
27318 次 |
| 最近记录: |