notifications.getAll()

获取扩展当前所有活动的通知。

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

语法

js
let gettingAll = browser.notifications.getAll()

参数

无。

返回值

一个 Promise,它将被一个对象满足。每个当前活动的通知都是该对象的属性:属性的名称是通知的 ID,属性的值是 notifications.NotificationOptions 对象,描述该通知。

请注意,您可以通过将 ID 传递到 notifications.create() 来显式地定义通知的 ID。如果您不这样做,浏览器将生成一个。显式指定的 ID 是字符串,但生成的 ID 是数字。

浏览器兼容性

BCD 表格只在浏览器中加载

示例

此示例在用户单击浏览器操作时显示通知,除非通知已在显示,在这种情况下,它会清除通知。它使用 getAll() 来确定通知是否正在显示

js
const myNotification = "my-notification";

function toggleAlarm(all) {
  const ids = Object.keys(all);
  if (ids.includes(myNotification)) {
    browser.notifications.clear(myNotification);
  } else {
    console.log("showing");

    browser.notifications.create(myNotification, {
      type: "basic",
      title: "Am imposing title",
      message: "Some interesting content",
    });
  }
}

function handleClick() {
  console.log("clicked");
  browser.notifications.getAll().then(toggleAlarm);
}

browser.browserAction.onClicked.addListener(handleClick);

此示例记录所有活动通知的标题

js
function logNotifications(all) {
  for (const id in all) {
    console.log(`Title: ${all[id].title}`);
  }
}

browser.notifications.getAll().then(logNotifications);

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