【发布时间】:2013-11-17 02:19:31
【问题描述】:
我正在开发一个用作内部工具的 Chrome 扩展程序。其要求的行为是:
- 作为页面操作,在查看某些 Intranet 页面时启用地址栏图标。
- 当用户单击该图标时,识别页面上某种媒体类型(例如 .jpg)的所有文件,并且
- 以静默方式将它们全部保存到用户本地驱动器上的目录中。
This question has been asked before,但当时的答案是“use NPAPI”和NPAPI is now derelict。
那么,目前实现这一目标的可用方法是什么?我看过的是:
- chrome.FileSystem API --- 但这不会将文件保存在任何用户可访问的位置。相反,存储的文件是hidden behind obfuscated names 在一个未记录的目录中。用户要求将文件以其原始名称存储在可访问的目录中。
- The HTML5 download attribute,通过创建一个 data: URL 并以编程方式单击它。这会为每个文件弹出一个“另存为...”对话框,当单个页面上有一百个资产时,这是不可接受的。用户要求下载文件时无需单击图标之外的其他交互。
- Chrome Download API,但仅在测试版和开发版中可用。用户需要此扩展程序与主流 Chrome 一起使用。
- 使用Native Messaging API 创建一个简单的.exe,将文件保存到磁盘,然后将.jpg 作为blob 传递给它。这似乎很麻烦,我什至不确定如何可靠地将大 blob 传递给这样的 EXE。
我可以尝试其他方法吗?
【问题讨论】:
-
出于好奇,我们最终通过完全放弃内部工具中的 Chrome 和 Web UI 解决了这个问题。
-
嗯,这是一种方法......:D
-
@Crashworks,为什么不使用 PPAPI 而不是 NPAPI?
-
@Crashworks - 你搬到了什么地方?我们正在做类似的事情,并且在 chrome 中有很多工具......而不是直接应用程序?
-
@EdWilliams 是的,我们又回到了使用 Qt 构建原生 C++ 应用程序。
标签: javascript google-chrome google-chrome-extension