Podstawy skryptu service worker rozszerzenia

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 w zwykły sposób. Pamiętaj, że stwierdzenia importu nie są obsługiwane.

import { tldLocales } from './locales.js';

Użyj importScripts() tak, jak w przypadku web service worker.

importScripts('locales.js');

Aktualizuj

Aby zaktualizować usługę w tle, opublikuj nową wersję rozszerzenia w Chrome Web Store. Nie możesz tego obejść, wczytując rozszerzenie z serwera. Ze względów bezpieczeństwa Manifest V3 nie obsługuje kodu hostowanego zdalnie. Twój serwisowy worker musi być częścią pakietu rozszerzenia.