Pracownicy usługi rozszerzenia są instalowani i aktualizowani inaczej niż pracownicy usługi internetowej. Na tej stronie wyjaśniamy te różnice.
Rejestrowanie skryptów service worker
Aby zarejestrować pracownika obsługi rozszerzenia, określ go w polu "background"
w pliku manifest.json
. Użyj klucza "service_worker"
, który określa pojedynczy plik JavaScript. Usługa w witrynach lub aplikacjach internetowych rejestruje usługę w ramach usługi serviceWorker
w funkcji navigator
, a potem wywołuje funkcję register()
w ramach wykrywania funkcji. Nie dotyczy to rozszerzeń.
{
"name": "Awesome Test Extension",
...
"background": {
"service_worker": "service-worker.js"
},
...
}
Importowanie skryptów
Istnieją 2 metody importowania skryptów do workera usługi: instrukcja import
i metoda importScripts()
. Pamiętaj, że import()
, często nazywane importem dynamicznym, nie jest obsługiwane.
Aby użyć instrukcji import
, dodaj do pliku manifestu pole "type"
i określ wartość "module"
. Na przykład:
"background": {
"service_worker": "service-worker.js",
"type": "module"
}
Następnie używaj import
jak zwykle. Pamiętaj, że stwierdzenia importu nie są obsługiwane.
import { tldLocales } from './locales.js';
Używaj metody importScripts()
w taki sam sposób jak w przypadku skryptu service worker.
importScripts('locales.js');
Aktualizuj
Aby zaktualizować usługę w tle, opublikuj nową wersję rozszerzenia w Chrome Web Store. Nie możesz obejść tego problemu, wczytując rozszerzenie z serwera. Ze względów bezpieczeństwa Manifest V3 nie obsługuje kodu hostowanego zdalnie. Twój serwis worker musi być częścią pakietu rozszerzenia.