notifications.getAll()

获取扩展程序创建的所有当前活动的通知。

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

语法

js
let gettingAll = browser.notifications.getAll()

参数

无。

返回值

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

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

示例

此示例显示了当用户点击浏览器操作时的一个通知,除非该通知已在显示中,在这种情况下,它会清除该通知。它使用 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。