notifications.create()

创建并显示通知。

传递一个 notifications.NotificationOptions 来定义通知的内容和行为。

您可以选择为通知提供一个 ID。如果您省略 ID,则会生成一个 ID。您可以使用 ID 来 updateclear 通知。

这是一个返回 Promise 的异步函数。

警告:如果您在短时间内多次调用 notifications.create(),Firefox 可能会最终不显示任何通知。

语法

js
let creating = browser.notifications.create(
  id,                   // optional string
  options               // NotificationOptions
)

参数

id 可选

string。这用于在 notifications.update()notifications.clear() 和事件监听器中引用此通知。如果您省略此参数或传递空字符串,则会为此通知生成一个新的 ID。如果您提供的 ID 与来自此扩展的现有通知的 ID 匹配,则其他通知将被清除。

选项

notifications.NotificationOptions。定义通知的内容和行为。

返回值

一个 Promise,当通知创建并已启动显示过程时,它将被执行,这早于通知实际显示给用户之前。它将使用表示通知 ID 的字符串来执行。

示例

此示例使用 alarm 定期显示通知。单击浏览器操作会关闭通知。您需要“alarms” 权限 来创建警报(以及“notifications”权限来创建通知)。

js
let cakeNotification = "cake-notification";

/*

CAKE_INTERVAL is set to 6 seconds in this example.
Such a short period is chosen to make the extension's behavior
more obvious, but this is not recommended in real life.
Note that in Chrome, alarms cannot be set for less
than a minute.

*/
let CAKE_INTERVAL = 0.1;

browser.alarms.create("", { periodInMinutes: CAKE_INTERVAL });

browser.alarms.onAlarm.addListener((alarm) => {
  browser.notifications.create(cakeNotification, {
    type: "basic",
    iconUrl: browser.runtime.getURL("icons/cake-96.png"),
    title: "Time for cake!",
    message: "Something something cake",
  });
});

browser.browserAction.onClicked.addListener(() => {
  const clearing = browser.notifications.clear(cakeNotification);
  clearing.then(() => {
    console.log("cleared");
  });
});

扩展示例

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

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