客户端:claim() 方法

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

claim() 方法是 Clients 接口的一种方法,允许活动的 Service Worker 将自身设置为其 scope 内所有客户端的 controller。这将在任何受此 Service Worker 控制的客户端的 navigator.serviceWorker 上触发 “controllerchange” 事件。

当最初注册 Service Worker 时,页面在下次加载之前不会使用它。claim() 方法会导致这些页面立即被控制。请注意,这会导致你的 Service Worker 控制通过网络定期加载的页面,或者可能通过不同的 Service Worker 加载的页面。

语法

js
claim()

参数

无。

返回值

一个 Promise,它解析为 undefined

示例

以下示例在 Service Worker 的 “activate” 事件监听器中使用 claim(),以便在同一作用域中加载的客户端无需重新加载即可通过此 Service Worker 进行提取。

js
self.addEventListener("activate", (event) => {
  event.waitUntil(clients.claim());
});

规范

规范
Service Workers
# clients-claim

浏览器兼容性

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

另请参阅