我们能否在Chrome扩展中检测文件何时开始下载,以及我们能否访问本地已下载的文件?

4
我将开发一个Chrome扩展程序,用于检测从Chrome浏览器开始下载的文件的状态,并读取这些文件以实现某些目的。
  • 在Chrome浏览器中每当有文件下载时,是否可以在Chrome扩展程序中检测到它?
  • 我们可以访问本地存储中已下载的文件并在Chrome扩展程序中读取它吗?
  • 我们可以将桌面上的文件拖放到Chrome扩展程序的托盘图标中吗?

chrome.downloads.onCreated 是 #1,#2/#3 的答案是不行。或者,如果你想的话,可以将#2/#3的逻辑放在本地应用程序中,并使用类似原生消息的方式传输数据。 - Haibara Ai
这是否意味着如果我制作一个本地应用程序和一个Chrome扩展程序,两者都是可能实现的? - isaac lee
1个回答

2

// 1. 存储下载ID。

let downloadId;

chrome.downloads.onCreated.addListener(function (downloadItem) { console.log("文件名和绝对本地路径 " , downloadItem.filename); // 打印 "" // 请注意,此处不会获取downloadItem.filename。因此,请存储下载ID。 downloadId = downloadItem.id; });

// 2. 使用以下API获取文件名。使用从上一步获得的downloadId

chrome.downloads.search({id: downloadId}, function (downloadItem) { console.log("文件名和绝对本地路径 " , downloadItem.filename); // 打印"C:/user/downloads/yourfile" });

// 现在在您的中使用<input type="file" > // 并访问与从第2步获取的文件名匹配的文件。


我认为没有任何保证它们会按顺序被调用,因为两者都是异步的。 - user2720864

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接