downloads.open()

downloads API 的 open() 函数会使用关联的应用程序打开下载的文件。当项目首次打开时,会触发一个 downloads.onChanged 事件。

要在您的扩展中使用此函数,您必须请求 "downloads.open" manifest 权限,以及 "downloads" 权限。此外,您只能从 用户操作 的处理程序内部调用此函数。

这是一个异步函数,返回一个 Promise

语法

js
let opening = browser.downloads.open(
  downloadId      // integer
)

参数

downloadId

一个代表您要打开的 downloads.DownloadItemidinteger

返回值

一个 Promise。如果请求成功,该 Promise 将不带参数地 fulfilled。如果请求失败,该 Promise 将带错误消息 rejected。

示例

此示例打开最近下载的项目

js
function onOpened() {
  console.log(`Opened download item`);
}

function onError(error) {
  console.log(`Error opening item: ${error}`);
}

function openDownload(downloadItems) {
  if (downloadItems.length > 0) {
    let opening = browser.downloads.open(downloadItems[0].id);
    opening.then(onOpened, onError);
  }
}

let searching = browser.downloads.search({
  limit: 1,
  orderBy: ["-startTime"],
});

searching.then(openDownload, onError);

扩展程序示例

浏览器兼容性

注意:此 API 基于 Chromium 的 chrome.downloads API。