擴充功能 Service Worker 基本概念

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

註冊 Service Worker

如要註冊擴充功能 Service Worker,請在 manifest.json 檔案的 "background" 欄位中指定該工作站。使用 "service_worker" 鍵,可指定單一 JavaScript 檔案。網頁或網頁應用程式中的 Service Worker 會先在 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() 的方式與網路服務工作站相同。

importScripts('locales.js');

更新

如要更新 Service Worker,請將擴充功能新版本發布至 Chrome 線上應用程式商店。您無法避免這種情況,可以從伺服器載入擴充功能。基於安全考量,Manifest V3 不支援遠端代管程式碼。Service Worker 必須是擴充功能套件的一部分。