I service worker delle estensioni vengono installati e aggiornati in modo diverso rispetto ai worker di servizio web. Questa pagina spiega queste differenze.
Registra service worker
Per registrare un service worker dell'estensione, specificalo nel campo "background"
del file manifest.json
. Utilizza la chiave "service_worker"
, che specifica un singolo file JavaScript. I service worker nelle pagine web o nelle app web registrano i service worker rilevando prima le funzionalità per 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 gli script in un service worker: l'istruzione import
e il metodo importScripts()
. Tieni presente che import()
, spesso chiamato importazione dinamica, non è supportato.
Per utilizzare l'istruzione import
, aggiungi il campo "type"
al file manifest e specifica "module"
. Ad esempio:
"background": {
"service_worker": "service-worker.js",
"type": "module"
}
Quindi, usa 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 service worker.
importScripts('locales.js');
Aggiorna
Per aggiornare il service worker, pubblica una nuova versione della tua 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 service worker deve essere incluso nel pacchetto dell'estensione.