Die Service Worker der Erweiterung werden anders installiert und aktualisiert als die Web Service Worker. Auf dieser Seite werden diese Unterschiede erläutert.
Service Worker registrieren
Wenn Sie einen Erweiterungs-Service-Worker registrieren möchten, geben Sie ihn im Feld "background"
der Datei manifest.json
an. Verwenden Sie den Schlüssel "service_worker"
, der eine einzelne JavaScript-Datei angibt. Service Worker auf Webseiten oder Webanwendungen registrieren Service Worker, indem sie zuerst die Featureerkennung für serviceWorker
in navigator
und dann register()
in der Featureerkennung aufrufen. Dies funktioniert nicht bei Erweiterungen.
{
"name": "Awesome Test Extension",
...
"background": {
"service_worker": "service-worker.js"
},
...
}
Skripts importieren
Es gibt zwei Methoden zum Importieren von Skripts in einen Service Worker: die Anweisung import
und die Methode importScripts()
. Hinweis: import()
wird oft als dynamischer Import bezeichnet und wird nicht unterstützt.
Wenn du die import
-Anweisung verwenden möchtest, füge deinem Manifest das Feld "type"
hinzu und gib "module"
an. Beispiel:
"background": {
"service_worker": "service-worker.js",
"type": "module"
}
Verwenden Sie dann import
wie gewohnt. Import-Assertions werden nicht unterstützt.
import { tldLocales } from './locales.js';
Verwenden Sie importScripts()
wie in einem Webdienst-Worker.
importScripts('locales.js');
Aktualisieren
Wenn Sie den Service Worker aktualisieren möchten, veröffentlichen Sie eine neue Version der Erweiterung im Chrome Web Store. Das lässt sich nicht umgehen, indem Sie die Erweiterung von einem Server laden. Aus Sicherheitsgründen unterstützt Manifest V3keinen extern gehosteten Code. Ihr Service Worker muss Teil des Erweiterungspakets sein.