ServiceWorkerGlobalScope:backgroundfetchclick 事件

可用性有限

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

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

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

ServiceWorkerGlobalScope 接口的 backgroundfetchclick 事件会在用户点击浏览器提供的用于显示 后台获取 操作进度的 UI 时触发。

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

语法

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

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

onbackgroundfetchclick = (event) => { }

事件类型

一个 BackgroundFetchEvent

Event ExtendableEvent BackgroundFetchEvent

事件属性

继承自其父级 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");
  }
});

规范

规范
Background Fetch
# dom-serviceworkerglobalscope-onbackgroundfetchclick

浏览器兼容性

另见