擴充功能 Service Worker 基本概念

擴充功能服務 worker 的安裝和更新方式與網頁服務 worker 不同。本頁面將說明這些差異。

註冊 Service Worker

如要註冊擴充功能服務 worker,請在 manifest.json 檔案的 "background" 欄位中指定該 worker。使用 "service_worker" 鍵,指定單一 JavaScript 檔案。網頁或網路應用程式中的服務工作管理員會先在 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';

請在網路服務 worker 中使用 importScripts()

importScripts('locales.js');

更新

如要更新服務工作者,請在 Chrome 線上應用程式商店發布擴充功能的新版本。您無法透過從伺服器載入擴充功能來解決這個問題。基於安全性考量,Manifest V3 不支援遠端代管的程式碼。您的服務工作者必須是擴充功能套件的一部分。