ServiceWorkerContainer.register()
>ServiceWorkerContainer 接口的 register() 方法创建或更新一个给定 scriptURL 的ServiceWorkerRegistration。
如果成功,一个服务工作者注册将提供的脚本 URL 与一个范围进行关联,后者用于导航匹配。如果该方法无法返回一个 ServiceWorkerRegistration,则返回一个 Promise。
你可以从受控页无条件调用此方法,即,你不需要首先检查是否有一个有效的注册。
语法
js
ServiceWorkerContainer.register(scriptURL, options).then(
function (ServiceWorkerRegistration) {
// do something
},
);
参数
scriptURL-
service worker 脚本的 URL.
options可选-
注册时提供选项的配置对象。目前可用的选项包括:
scope: 一个USVString,表示定义 service worker 注册范围的 URL;service worker 可以控制的 URL 范围。通常是相对 URL。默认值是基于当前的 location,并以此来解析传入的路径。
返回
返回一个 Promise 对象,值是 ServiceWorkerRegistration。
示例
js
if ("serviceWorker" in navigator) {
navigator.serviceWorker
.register("service-worker.js", { scope: "./" })
.then(function (registration) {
document.querySelector("#status").textContent = "succeeded";
})
.catch(function (error) {
document.querySelector("#status").textContent = error;
});
} else {
// The current browser doesn't support service workers.
let aElement = document.createElement("a");
aElement.href = `
http://www.chromium.org/blink/serviceworker/service-worker-faq
`;
aElement.textContent = "unavailable";
document.querySelector("#status").appendChild(aElement);
}
规范
| 规范 |
|---|
| Service Workers Nightly> # navigator-service-worker-register> |