跳转到内容

Notification Triggers 支持情况

发布于

Notification Triggers 是为 ServiceWorkerRegistration.showNotification() 提出的一个 showTrigger 选项,允许页面通过 TimestampTrigger 指定未来某个 时间来调度通知的显示,且触发时页面或 Service Worker 无需处于运行状态。

  • 图例
  • 支持
  • 部分支持
  • 需开启标志
  • 不支持
  • 未知
浏览器 / 平台支持版本置信度来源备注
Chrome (Desktop)不支持—中来源12
  1. 从未在 Chrome 中发布:Chrome Platform Status 显示,该特性在完成说明文档和两轮 origin trial(Chrome 80-83 与 86-88)后,发布里程碑仍为「Not started」;Chrome 自己的文档确认开发已结束。
  2. 本行来源于 Chrome 自己的状态页,仅证明 Chrome 的状态,不对其他浏览器引擎作任何断言。

源数据: /compatibility/notification-triggers.json · 全球使用占比: 0 % (StatCounter 2026-05)

来源: 规范 · MDN · 最近核验 2026-09-03 · 置信度: 中 (由来源计算)

根据其说明文档提出的形态,传入 showTrigger 选项,并配合设为目标投递时间的 TimestampTrigger:

async function scheduleNotification(registration, whenMs, options) {
return registration.showNotification('Reminder', {
...options,
showTrigger: new TimestampTrigger(whenMs),
});
}

文档记载的检测方式是判断 Notification.prototype 上是否存在 showTrigger。 由于 Chrome 的官方文档表明该功能的开发已终止,请将此检测结果视为不可靠,并 始终实现下面的回退分支:

function scheduleWithFallback(registration, whenMs, options) {
if ('showTrigger' in Notification.prototype) {
return registration.showNotification('Reminder', {
...options,
showTrigger: new TimestampTrigger(whenMs),
});
}
// 回退方案:改由服务器驱动的推送消息来处理调度。
return requestServerScheduledPush(whenMs, options);
}
  • Chrome 的官方文档表明该功能的开发已终止,因此不要依赖 showTrigger 可用—— 应始终实现并实际执行上方的回退分支。
  • 根据该文档,给出的原因是尚未解决如何在不依赖标签页保持打开的情况下,清理 过期或已失效的已调度通知(例如被取消的日历事件)这一需求;该说明文档还指出, Push API 与 Periodic Background Sync 均被考虑过,但被认为无法满足这一具体 需求。
  • 由于该 API 从未进入正式可用阶段,请勿假设未来某个浏览器版本会添加它,使用前 应先查阅当前的 MDN 或 Chrome 状态文档。

← 返回兼容性浏览器。