I service worker di estensione vengono installati e aggiornati in modo diverso rispetto ai worker di servizi web. Questa pagina spiega queste differenze.
Registra i service worker
Per registrare un service worker di estensione, specificalo nel campo "background"
del file manifest.json
. Utilizza la chiave "service_worker"
, che specifica un singolo file JavaScript. I worker di servizio nelle pagine web o nelle app web si registrano rilevando prima la funzionalità serviceWorker
in navigator
e poi chiamando register()
all'interno del rilevamento delle funzionalità. Questa operazione non funziona per le estensioni.
{
"name": "Awesome Test Extension",
...
"background": {
"service_worker": "service-worker.js"
},
...
}
Importa script
Esistono due metodi per importare script in un servizio worker: l'istruzione import
e il metodo importScripts()
. Tieni presente che import()
, spesso chiamata importazione dinamica, non è supportata.
Per utilizzare l'istruzione import
, aggiungi il campo "type"
al manifest e specifica "module"
. Ad esempio:
"background": {
"service_worker": "service-worker.js",
"type": "module"
}
Poi utilizza import
come faresti normalmente. Tieni presente che le asserzioni di importazione non sono supportate.
import { tldLocales } from './locales.js';
Utilizza importScripts()
come faresti in un operatore di servizi web.
importScripts('locales.js');
Aggiorna
Per aggiornare il service worker, pubblica una nuova versione dell'estensione sul Chrome Web Store. Non puoi aggirare il problema caricando l'estensione da un server. Per motivi di sicurezza, Manifest V3 non supporta il codice ospitato in remoto. Il tuo service worker deve far parte del pacchetto dell'estensione.