notifications.update()
更新通知,指定其 ID。
这是一个异步函数,它返回一个 Promise
。
语法
js
let updating = browser.notifications.update(
id, // string
options // NotificationOptions
)
参数
id
-
string
. 要更新的通知的 ID。这与传递给notifications.create()
回调的 ID 相同。 options
-
notifications.NotificationOptions
. 定义通知的新内容和行为。
返回值
一个 Promise
,它将用布尔值来实现:如果通知已更新,则为 true
,如果未更新,则为 false
(例如,因为 id
引用的通知不存在)。
浏览器兼容性
BCD 表格仅在浏览器中加载
示例
此示例使用 update()
更新进度通知。单击浏览器操作将显示通知并启动一个 alarm
,我们使用它来更新通知的进度指示器。
请注意,您需要“alarms” 权限 才能创建警报(以及“notifications”权限才能创建通知)。另请注意,Firefox 不支持 progress
属性。
js
let cakeNotification = "cake-notification";
/*
CAKE_INTERVAL is set to 0.3 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_PREP_INTERVAL = 0.005;
let progress = 0;
browser.alarms.onAlarm.addListener((alarm) => {
progress += 10;
if (progress > 100) {
browser.notifications.clear(cakeNotification);
browser.alarms.clear("cake-progress");
} else {
browser.notifications.update(cakeNotification, { progress });
}
});
browser.browserAction.onClicked.addListener(() => {
browser.notifications.getAll((all) => {
if (all.length > 0) {
browser.notifications.clear(cakeNotification);
return;
}
progress = 0;
browser.notifications.create(cakeNotification, {
type: "progress",
iconUrl: browser.extension.getURL("icons/cake-48.png"),
title: "Your cake is being prepared…",
message: "Something something cake",
progress,
});
browser.alarms.create("cake-progress", {
periodInMinutes: CAKE_PREP_INTERVAL,
});
});
});
注意: 此 API 基于 Chromium 的 chrome.notifications
API。