扩展 Service Worker 的安装和更新方式与 Web Service Worker 不同。本页介绍了这些不同之处。
注册 Service Worker
要注册扩展 Service Worker,请在 manifest.json
文件的 "background"
字段中指定它。使用 "service_worker"
键,该键会指定单个 JavaScript 文件。网页或 Web 应用中的 Service Worker 会通过以下方式注册 Service Worker:首先在 navigator
中检测 serviceWorker
的功能,然后在功能检测内调用 register()
。这不适用于扩展程序。
{
"name": "Awesome Test Extension",
...
"background": {
"service_worker": "service-worker.js"
},
...
}
导入脚本
将脚本导入 Service Worker 的方法有两种:import
语句和 importScripts()
方法。请注意,系统不支持 import()
(通常称为动态导入)。
如需使用 import
语句,请将 "type"
字段添加到您的清单中并指定 "module"
。例如:
"background": {
"service_worker": "service-worker.js",
"type": "module"
}
然后,像往常一样使用 import
。请注意,不支持导入断言。
import { tldLocales } from './locales.js';
像在 Web Service Worker 中一样使用 importScripts()
。
importScripts('locales.js');
更新
要更新 Service Worker,请向 Chrome 应用商店发布新版本的扩展程序。您无法通过从服务器加载扩展程序来解决此问题。出于安全原因,Manifest V3 不支持远程托管的代码。您的 Service Worker 必须是扩展程序软件包的一部分。