Extension Service Worker 基础知识

扩展 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 必须是扩展程序软件包的一部分。