擴充功能服務 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 不支援遠端代管的程式碼。您的服務工作者必須是擴充功能套件的一部分。