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