Basisbeginselen van de servicemedewerker

Extensieservicewerknemers worden anders geïnstalleerd en bijgewerkt dan webservicewerknemers. Op deze pagina worden deze verschillen uitgelegd.

Servicemedewerkers registreren

Als u een extensieservicemedewerker wilt registreren, geeft u deze op in het veld "background" van het manifest.json -bestand. Gebruik de sleutel "service_worker" , die één JavaScript-bestand specificeert. Servicemedewerkers op webpagina's of web-apps registreren servicemedewerkers door eerst de functies voor serviceWorker in navigator te detecteren en vervolgens register() binnen de functiedetectie aan te roepen. Dit werkt niet voor extensies.

{
  "name": "Awesome Test Extension",
  ...
  "background": {
    "service_worker": "service-worker.js"
  },
  ...
}

Scripts importeren

Er zijn twee methoden om scripts in een servicemedewerker te importeren: de import en de importScripts() -methode. Houd er rekening mee dat import() , vaak een dynamische import genoemd, niet wordt ondersteund.

Om de import te gebruiken, voegt u het veld "type" toe aan uw manifest en specificeert u "module" . Bijvoorbeeld:

  "background": {
    "service_worker": "service-worker.js",
    "type": "module"
  }

Gebruik vervolgens import zoals u dat normaal zou doen. Houd er rekening mee dat importbeweringen niet worden ondersteund.

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

Gebruik importScripts() zoals u zou doen in een webservicewerker.

importScripts('locales.js');

Update

Als u de servicemedewerker wilt updaten, publiceert u een nieuwe versie van uw extensie in de Chrome Web Store. U kunt dit niet omzeilen door uw extensie vanaf een server te laden. Om veiligheidsredenen ondersteunt Manifest V3 geen op afstand gehoste code. Uw servicemedewerker moet deel uitmaken van het uitbreidingspakket.