Extensieserviceworkers ondersteunen zowel standaard serviceworker- events als veel events in de extensie-API's . In dit gedeelte wordt beschreven wat er beschikbaar is en worden tips gegeven voor het gebruik ervan.
Declareer extensie-evenementen
Eventhandlers in service workers moeten globaal worden gedeclareerd, wat betekent dat ze zich op het hoogste niveau van het script moeten bevinden en niet genesteld mogen zijn binnen functies. Dit zorgt ervoor dat ze synchroon worden geregistreerd bij de eerste uitvoering van het script, waardoor Chrome gebeurtenissen naar de service worker kan verzenden zodra deze start. Bijvoorbeeld:
browser.storage.local.get(["badgeText"], ({ badgeText }) => { browser.action.setBadgeText({ text: badgeText }); browser.action.onClicked.addListener(handleActionClick); });
browser.action.onClicked.addListener(handleActionClick); browser.storage.local.get(["badgeText"], ({ badgeText }) => { browser.action.setBadgeText({ text: badgeText }); });
Algemene gebeurtenissen
Extensieservicewerkers ondersteunen gebeurtenissen in specifieke API's. Een aantal veelvoorkomende worden hieronder beschreven. Houd er rekening mee dat voor sommige van deze API's machtigingen vereist zijn en dat andere mogelijk gebeurtenissen, methoden of eigenschappen bevatten die niet in alle versies van Chrome beschikbaar zijn. Raadpleeg voor meer informatie de gekoppelde API-documentatie, met name voor de gebeurtenissen, methoden of eigenschappen die u wilt gebruiken.
-
browser.action - Deze gebeurtenis wordt geactiveerd wanneer een gebruiker interactie heeft met het pictogram in de werkbalk van uw extensie, ongeacht of die actie betrekking heeft op een specifieke pagina (tabblad) of op de hele extensie.
-
browser.management - Biedt gebeurtenissen met betrekking tot de installatie, verwijdering, inschakeling en uitschakeling van extensies.
-
browser.notifications - Geeft gebeurtenissen weer die verband houden met de interactie van de gebruiker met systeemmeldingen die door de extensie worden gegenereerd.
-
browser.permissions - Geeft aan wanneer de gebruiker extensierechten heeft verleend of ingetrokken.
-
browser.runtime - Biedt toegang tot gebeurtenissen met betrekking tot de levenscyclus van de extensie, berichten die vanuit andere delen van de extensie worden verzonden en meldingen over beschikbare extensie- of Chrome-updates.
-
browser.storage.onChanged - Deze gebeurtenis wordt geactiveerd wanneer een
StorageAreaobject wordt leeggehaald of wanneer de waarde van een sleutel wordt gewijzigd of ingesteld. Merk op dat elkeStorageAreainstantie een eigenonChanged-gebeurtenis heeft. -
browser.webNavigation - Geeft informatie over de status van navigatieverzoeken tijdens de vlucht.
Filters
Om gebeurtenissen te beperken tot specifieke gebruikssituaties of onnodige gebeurtenisoproepen te elimineren, kunt u API's gebruiken die gebeurtenisfilters ondersteunen. Neem bijvoorbeeld een extensie die luistert naar de tabs.onUpdated gebeurtenis om te detecteren wanneer een gebruiker naar een specifieke website navigeert. Deze gebeurtenis wordt bij elke navigatie op elk tabblad aangeroepen. Gebruik in plaats daarvan webNavigation.onCompleted met een filter. Bijvoorbeeld:
const filter = {
url: [
{
urlMatches: 'https://www.google.com/',
},
],
};
browser.webNavigation.onCompleted.addListener(() => {
console.info("The user has loaded my favorite website!");
}, filter);
Webservice worker-gebeurtenissen
Voorlichtingsmedewerkers ondersteunen meer dan alleen de levenscyclusgebeurtenissen die elders worden beschreven .
ServiceWorkerGlobal.fetch
Deze functie wordt geactiveerd wanneer er iets wordt opgehaald uit het extensiepakket of wanneer fetch() en XMLHttpRequest() worden aangeroepen vanuit een extensie- of pop-upscript. (Aanroepen vanuit contentscripts worden niet onderschept door de fetch handler van de service worker.) In de laatstgenoemde gevallen moet u de URL's van de pagina's die u wilt ophalen toevoegen aan de sleutel "host_permissions" in het manifest.json bestand.
ServiceWorkerGlobal.message
Naast het doorgeven van berichten via extensies is er ook de mogelijkheid om berichten via service workers door te geven , maar de twee systemen zijn niet interoperabel. Dit betekent dat berichten die worden verzonden met sendMessage() (beschikbaar via verschillende extensie-API's) niet worden onderschept door de berichtafhandelaars van service workers. Evenzo worden berichten die worden verzonden met postMessage() niet onderschept door de berichtafhandelaars van extensies. Beide typen berichtafhandelaars – zowel ServiceWorkerGlobal.message als browser.runtime.onMessage – worden ondersteund in extensie-service workers.
Je kunt beter gebruikmaken van berichtenverkeer via extensies , tenzij je een specifieke reden hebt om berichtenverkeer via service workers te gebruiken.
,Extensieserviceworkers ondersteunen zowel standaard serviceworker- events als veel events in de extensie-API's . In dit gedeelte wordt beschreven wat er beschikbaar is en worden tips gegeven voor het gebruik ervan.
Declareer extensie-evenementen
Eventhandlers in service workers moeten globaal worden gedeclareerd, wat betekent dat ze zich op het hoogste niveau van het script moeten bevinden en niet genesteld mogen zijn binnen functies. Dit zorgt ervoor dat ze synchroon worden geregistreerd bij de eerste uitvoering van het script, waardoor Chrome gebeurtenissen naar de service worker kan verzenden zodra deze start. Bijvoorbeeld:
browser.storage.local.get(["badgeText"], ({ badgeText }) => { browser.action.setBadgeText({ text: badgeText }); browser.action.onClicked.addListener(handleActionClick); });
browser.action.onClicked.addListener(handleActionClick); browser.storage.local.get(["badgeText"], ({ badgeText }) => { browser.action.setBadgeText({ text: badgeText }); });
Algemene gebeurtenissen
Extensieservicewerkers ondersteunen gebeurtenissen in specifieke API's. Een aantal veelvoorkomende worden hieronder beschreven. Houd er rekening mee dat voor sommige van deze API's machtigingen vereist zijn en dat andere mogelijk gebeurtenissen, methoden of eigenschappen bevatten die niet in alle versies van Chrome beschikbaar zijn. Raadpleeg voor meer informatie de gekoppelde API-documentatie, met name voor de gebeurtenissen, methoden of eigenschappen die u wilt gebruiken.
-
browser.action - Deze gebeurtenis wordt geactiveerd wanneer een gebruiker interactie heeft met het pictogram in de werkbalk van uw extensie, ongeacht of die actie betrekking heeft op een specifieke pagina (tabblad) of op de hele extensie.
-
browser.management - Biedt gebeurtenissen met betrekking tot de installatie, verwijdering, inschakeling en uitschakeling van extensies.
-
browser.notifications - Geeft gebeurtenissen weer die verband houden met de interactie van de gebruiker met systeemmeldingen die door de extensie worden gegenereerd.
-
browser.permissions - Geeft aan wanneer de gebruiker extensierechten heeft verleend of ingetrokken.
-
browser.runtime - Biedt toegang tot gebeurtenissen met betrekking tot de levenscyclus van de extensie, berichten die vanuit andere delen van de extensie worden verzonden en meldingen over beschikbare extensie- of Chrome-updates.
-
browser.storage.onChanged - Deze gebeurtenis wordt geactiveerd wanneer een
StorageAreaobject wordt leeggehaald of wanneer de waarde van een sleutel wordt gewijzigd of ingesteld. Merk op dat elkeStorageAreainstantie een eigenonChanged-gebeurtenis heeft. -
browser.webNavigation - Geeft informatie over de status van navigatieverzoeken tijdens de vlucht.
Filters
Om gebeurtenissen te beperken tot specifieke gebruikssituaties of onnodige gebeurtenisoproepen te elimineren, kunt u API's gebruiken die gebeurtenisfilters ondersteunen. Neem bijvoorbeeld een extensie die luistert naar de tabs.onUpdated gebeurtenis om te detecteren wanneer een gebruiker naar een specifieke website navigeert. Deze gebeurtenis wordt bij elke navigatie op elk tabblad aangeroepen. Gebruik in plaats daarvan webNavigation.onCompleted met een filter. Bijvoorbeeld:
const filter = {
url: [
{
urlMatches: 'https://www.google.com/',
},
],
};
browser.webNavigation.onCompleted.addListener(() => {
console.info("The user has loaded my favorite website!");
}, filter);
Webservice worker-gebeurtenissen
Voorlichtingsmedewerkers ondersteunen meer dan alleen de levenscyclusgebeurtenissen die elders worden beschreven .
ServiceWorkerGlobal.fetch
Deze functie wordt geactiveerd wanneer er iets wordt opgehaald uit het extensiepakket of wanneer fetch() en XMLHttpRequest() worden aangeroepen vanuit een extensie- of pop-upscript. (Aanroepen vanuit contentscripts worden niet onderschept door de fetch handler van de service worker.) In de laatstgenoemde gevallen moet u de URL's van de pagina's die u wilt ophalen toevoegen aan de sleutel "host_permissions" in het manifest.json bestand.
ServiceWorkerGlobal.message
Naast het doorgeven van berichten via extensies is er ook de mogelijkheid om berichten via service workers door te geven , maar de twee systemen zijn niet interoperabel. Dit betekent dat berichten die worden verzonden met sendMessage() (beschikbaar via verschillende extensie-API's) niet worden onderschept door de berichtafhandelaars van service workers. Evenzo worden berichten die worden verzonden met postMessage() niet onderschept door de berichtafhandelaars van extensies. Beide typen berichtafhandelaars – zowel ServiceWorkerGlobal.message als browser.runtime.onMessage – worden ondersteund in extensie-service workers.
Je kunt beter gebruikmaken van berichtenverkeer via extensies , tenzij je een specifieke reden hebt om berichtenverkeer via service workers te gebruiken.
,Extensieserviceworkers ondersteunen zowel standaard serviceworker- events als veel events in de extensie-API's . In dit gedeelte wordt beschreven wat er beschikbaar is en worden tips gegeven voor het gebruik ervan.
Declareer extensie-evenementen
Eventhandlers in service workers moeten globaal worden gedeclareerd, wat betekent dat ze zich op het hoogste niveau van het script moeten bevinden en niet genesteld mogen zijn binnen functies. Dit zorgt ervoor dat ze synchroon worden geregistreerd bij de eerste uitvoering van het script, waardoor Chrome gebeurtenissen naar de service worker kan verzenden zodra deze start. Bijvoorbeeld:
browser.storage.local.get(["badgeText"], ({ badgeText }) => { browser.action.setBadgeText({ text: badgeText }); browser.action.onClicked.addListener(handleActionClick); });
browser.action.onClicked.addListener(handleActionClick); browser.storage.local.get(["badgeText"], ({ badgeText }) => { browser.action.setBadgeText({ text: badgeText }); });
Algemene gebeurtenissen
Extensieservicewerkers ondersteunen gebeurtenissen in specifieke API's. Een aantal veelvoorkomende worden hieronder beschreven. Houd er rekening mee dat voor sommige van deze API's machtigingen vereist zijn en dat andere mogelijk gebeurtenissen, methoden of eigenschappen bevatten die niet in alle versies van Chrome beschikbaar zijn. Raadpleeg voor meer informatie de gekoppelde API-documentatie, met name voor de gebeurtenissen, methoden of eigenschappen die u wilt gebruiken.
-
browser.action - Deze gebeurtenis wordt geactiveerd wanneer een gebruiker interactie heeft met het pictogram in de werkbalk van uw extensie, ongeacht of die actie betrekking heeft op een specifieke pagina (tabblad) of op de hele extensie.
-
browser.management - Biedt gebeurtenissen met betrekking tot de installatie, verwijdering, inschakeling en uitschakeling van extensies.
-
browser.notifications - Geeft gebeurtenissen weer die verband houden met de interactie van de gebruiker met systeemmeldingen die door de extensie worden gegenereerd.
-
browser.permissions - Geeft aan wanneer de gebruiker extensierechten heeft verleend of ingetrokken.
-
browser.runtime - Biedt toegang tot gebeurtenissen met betrekking tot de levenscyclus van de extensie, berichten die vanuit andere delen van de extensie worden verzonden en meldingen over beschikbare extensie- of Chrome-updates.
-
browser.storage.onChanged - Deze gebeurtenis wordt geactiveerd wanneer een
StorageAreaobject wordt leeggehaald of wanneer de waarde van een sleutel wordt gewijzigd of ingesteld. Merk op dat elkeStorageAreainstantie een eigenonChanged-gebeurtenis heeft. -
browser.webNavigation - Geeft informatie over de status van navigatieverzoeken tijdens de vlucht.
Filters
Om gebeurtenissen te beperken tot specifieke gebruikssituaties of onnodige gebeurtenisoproepen te elimineren, kunt u API's gebruiken die gebeurtenisfilters ondersteunen. Neem bijvoorbeeld een extensie die luistert naar de tabs.onUpdated gebeurtenis om te detecteren wanneer een gebruiker naar een specifieke website navigeert. Deze gebeurtenis wordt bij elke navigatie op elk tabblad aangeroepen. Gebruik in plaats daarvan webNavigation.onCompleted met een filter. Bijvoorbeeld:
const filter = {
url: [
{
urlMatches: 'https://www.google.com/',
},
],
};
browser.webNavigation.onCompleted.addListener(() => {
console.info("The user has loaded my favorite website!");
}, filter);
Webservice worker-gebeurtenissen
Voorlichtingsmedewerkers ondersteunen meer dan alleen de levenscyclusgebeurtenissen die elders worden beschreven .
ServiceWorkerGlobal.fetch
Deze functie wordt geactiveerd wanneer er iets wordt opgehaald uit het extensiepakket of wanneer fetch() en XMLHttpRequest() worden aangeroepen vanuit een extensie- of pop-upscript. (Aanroepen vanuit contentscripts worden niet onderschept door de fetch handler van de service worker.) In de laatstgenoemde gevallen moet u de URL's van de pagina's die u wilt ophalen toevoegen aan de sleutel "host_permissions" in het manifest.json bestand.
ServiceWorkerGlobal.message
Naast het doorgeven van berichten via extensies is er ook de mogelijkheid om berichten via service workers door te geven , maar de twee systemen zijn niet interoperabel. Dit betekent dat berichten die worden verzonden met sendMessage() (beschikbaar via verschillende extensie-API's) niet worden onderschept door de berichtafhandelaars van service workers. Evenzo worden berichten die worden verzonden met postMessage() niet onderschept door de berichtafhandelaars van extensies. Beide typen berichtafhandelaars – zowel ServiceWorkerGlobal.message als browser.runtime.onMessage – worden ondersteund in extensie-service workers.
Je kunt beter gebruikmaken van berichtenverkeer via extensies , tenzij je een specifieke reden hebt om berichtenverkeer via service workers te gebruiken.