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 functies te detecteren voor serviceWorker
in navigator
en vervolgens register()
aan te roepen binnen functiedetectie. 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.