ServiceWorkerGlobalScope:backgroundfetchclick 事件

可用性有限

此功能不是基线功能,因为它在某些最广泛使用的浏览器中不起作用。

实验性:这是一个实验性技术
在生产环境中使用此功能之前,请仔细查看浏览器兼容性表

安全上下文:此功能仅在安全上下文(HTTPS)中可用,在某些或所有支持的浏览器中可用。

注意:此功能仅在Service Workers中可用。

backgroundfetchclick 事件是 ServiceWorkerGlobalScope 接口的一个事件,当用户点击浏览器提供的 UI 以显示后台获取操作的进度时触发。

此事件不可取消,也不冒泡。

语法

在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。

js
addEventListener("backgroundfetchclick", (event) => {});

onbackgroundfetchclick = (event) => {};

事件类型

事件属性

继承自其父级 ExtendableEvent 的属性。

BackgroundFetchEvent.registration

返回用户点击其进度对话框的BackgroundFetchRegistration

描述

后台获取操作开始时,浏览器会向用户显示一个 UI 元素以指示操作的进度。如果用户点击此元素,浏览器将根据需要启动 Service Worker,并在 Service Worker 的全局范围内触发 backgroundfetchclick 事件。

在这种情况下,处理程序的一项常见任务是打开一个窗口,向用户提供有关获取操作的更多详细信息。

示例

打开包含更多详细信息的窗口

此事件处理程序使用全局 clients 属性打开一个窗口,向用户提供有关获取的更多详细信息。它根据获取是否已完成打开不同的窗口。

js
addEventListener("backgroundfetchclick", (event) => {
  const registration = event.registration;

  if (registration.result === "success") {
    clients.openWindow("/play-movie");
  } else {
    clients.openWindow("/movie-download-progress");
  }
});

规范

规范
后台获取
# dom-serviceworkerglobalscope-onbackgroundfetchclick

浏览器兼容性

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

另请参阅