在 Firefox webextension 上下载完成之前,downloads.onChanged 不会触发

问题描述

我有具有 downloads.onChanged 侦听器的 webextension。此侦听器应删除更改其名称的下载。在 chrome 上它可以工作,但在 Firefox 上它只在下载完成时触发。 示例:

browser.downloads.onChanged.addListener(checkFile);
for (var i = 0; i < arg.url.length; i++) {

let name = arg.filename[i];
browser.downloads.download({
url: arg.url[i],filename: name
},id => {
checkdownloadList[id] = name;
downloadList[id] = name;
})
}

function checkFile (file) {

if (checkdownloadList[file.id] !== undefined) {
delete checkdownloadList[file.id];

browser.downloads.search({
id: file.id
},function(downloadItems) {
if (downloadItems[0].filename.replace(/\\/gi,"/").includes(downloadList[downloadItems[0].id])) {
browser.downloads.resume(downloadItems[0].id);
} else {
browser.downloads.erase({id: downloadItems[0].id});
}
});

我无法暂停下载,因为 downloads.onCeeated 事件也不起作用。并在下载 id 收到结果后暂停,出现错误“无法暂停,因为下载中断”。在 chrome 上,所有这些方法都有效。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)