Beschrijving
Gebruik de chrome.runtime API om de servicemedewerker op te halen, details over het manifest te retourneren en te luisteren naar en te reageren op gebeurtenissen in de levenscyclus van de extensie. Je kunt deze API ook gebruiken om het relatieve pad van URL's om te zetten in volledig gekwalificeerde URL's.
Voor de meeste leden van deze API zijn geen rechten vereist. Dit recht is nodig voor connectNative(), sendNativeMessage() en onNativeConnect.
In het volgende voorbeeld zie je hoe je het recht "nativeMessaging" declareert in het manifest:
manifest.json:
{
"name": "My extension",
...
"permissions": [
"nativeMessaging"
],
...
}
Concepten en gebruik
De Runtime API biedt methoden om een aantal gebieden te ondersteunen die je extensies kunnen gebruiken:
- Berichten doorgeven
- Je extensie kan communiceren met verschillende contexten binnen je extensie en ook met andere extensies via deze methoden en gebeurtenissen:
connect(),onConnect,onConnectExternal,sendMessage(),onMessageenonMessageExternal. Daarnaast kan je extensie berichten doorgeven aan systeemeigen apps op het apparaat van de gebruiker viaconnectNative()ensendNativeMessage().
- Toegang tot metadata van extensies en platforms
- Met deze methoden kun je verschillende specifieke metadatagegevens over de extensie en het platform ophalen. Methoden in deze categorie zijn onder andere
getManifest()engetPlatformInfo(). - De levenscyclus en opties van extensies beheren
- Met deze eigenschappen kun je bepaalde metahandelingen uitvoeren op de extensie en de pagina met opties weergeven.
Methoden en gebeurtenissen in deze categorie zijn onder andere
onInstalled,onStartup,openOptionsPage(),reload(),requestUpdateCheck()ensetUninstallURL(). - Hulpprogramma's
- Deze methoden bieden hulpprogramma's zoals de conversie van interne bronrepresentaties naar externe indelingen. Voorbeelden van methoden in deze categorie zijn
getURL(). - Hulpprogramma's voor de kioskmodus
- Deze methoden zijn alleen beschikbaar in ChromeOS en bestaan voornamelijk om kiosk-implementaties te ondersteunen.
Methoden in deze categorie zijn onder andere
restart()enrestartAfterDelay()`.
Gedrag van uitgepakte extensies
Als een uitgepakte extensie opnieuw wordt geladen, wordt dit beschouwd als een update. Dit betekent dat de gebeurtenis browser.runtime.onInstalled wordt geactiveerd met de reden "update". Dit geldt ook als de extensie opnieuw wordt geladen met browser.runtime.reload().
Toepassingen
Een afbeelding toevoegen aan een webpagina
Als een webpagina toegang wil tot een item dat op een ander domein wordt gehost, moet de volledige URL van de bron worden vermeld (bijv. <img src="https://example.com/logo.png">). Hetzelfde geldt voor het opnemen van een extensie-item op een webpagina. De 2 verschillen zijn dat de componenten van de extensie moeten worden weergegeven als bronnen die toegankelijk zijn via het web en dat contentscripts meestal verantwoordelijk zijn voor het injecteren van extensiecomponenten.
In dit voorbeeld voegt de extensie logo.png toe aan de pagina waarin het contentscript wordt geïnjecteerd door runtime.getURL() te gebruiken om een volledig gekwalificeerde URL te maken. Maar eerst moet het item in het manifest worden gedefinieerd als een bron die toegankelijk is via het web.
manifest.json:
{
...
"web_accessible_resources": [
{
"resources": [ "logo.png" ],
"matches": [ "https://*/*" ]
}
],
...
}
content.js:
{ // Block used to avoid setting global variables
const img = document.createElement('img');
img.src = browser.runtime.getURL('logo.png');
document.body.append(img);
}
Gegevens van een contentscript naar de servicemedewerker sturen
Het is gebruikelijk dat de contentscripts van een extensie gegevens nodig hebben die worden beheerd door een ander deel van de extensie, zoals de servicemedewerker. Net als bij 2 browservensters die op dezelfde webpagina zijn geopend, hebben deze 2 contexten geen rechtstreekse toegang tot elkaars waarden. In plaats daarvan kan de extensie berichten doorgeven om de verschillende contexten te coördineren.
In dit voorbeeld heeft het contentscript gegevens van de servicemedewerker van de extensie nodig om de UI te initialiseren. De app stuurt het door de ontwikkelaar gedefinieerde bericht get-user-data naar de servicemedewerker om deze gegevens op te halen. De servicemedewerker reageert met een kopie van de gebruikersgegevens.
content.js:
// 1. Send a message to the service worker requesting the user's data
browser.runtime.sendMessage('get-user-data', (response) => {
// 3. Got an asynchronous response with the data from the service worker
console.log('received user data', response);
initializeUI(response);
});
service-worker.js:
// Example of a simple user data object
const user = {
username: 'demo-user'
};
browser.runtime.onMessage.addListener((message, sender, sendResponse) => {
// 2. A page requested user data, respond with a copy of `user`
if (message === 'get-user-data') {
sendResponse(user);
}
});
Feedback over verwijdering verzamelen
Veel extensies gebruiken enquêtes na de verwijdering om inzicht te krijgen in hoe de extensie gebruikers beter van dienst kan zijn en de gebruikersloyaliteit kan verbeteren. In het volgende voorbeeld staat hoe u deze functie toevoegt.
background.js:
browser.runtime.onInstalled.addListener(details => {
if (details.reason === browser.runtime.OnInstalledReason.INSTALL) {
browser.runtime.setUninstallURL('https://example.com/extension-survey');
}
});
Voorbeelden
Ga naar de demo Manifest V3 - Web Accessible Resources voor meer voorbeelden van de Runtime API.
Typen
ContextFilter
Een filter dat overeenkomt met bepaalde extensiecontexten. Overeenkomende contexten moeten overeenkomen met alle opgegeven filters. Elk filter dat niet is opgegeven, komt overeen met alle beschikbare contexten. Een filter van `{}` komt dus overeen met alle beschikbare contexten.
Eigenschappen
-
contextIds
string[] optioneel
-
contextTypes
ContextType[] optioneel
-
documentIds
string[] optioneel
-
documentOrigins
string[] optioneel
-
documentUrls
string[] optioneel
-
frameIds
number[] optioneel
-
incognito
booleaans optioneel
-
tabIds
number[] optioneel
-
windowIds
number[] optioneel
ContextType
Enum
"TAB"
Geeft het contexttype aan als een tabblad
POPUP
Hiermee wordt het contexttype aangegeven als een pop-upvenster van een extensie
"BACKGROUND"
Hiermee wordt het contexttype aangegeven als een servicemedewerker.
"OFFSCREEN_DOCUMENT"
Hiermee wordt het contexttype aangegeven als een document buiten het scherm.
"SIDE_PANEL"
Hiermee wordt het contexttype ingesteld als zijvenster.
"DEVELOPER_TOOLS"
Geeft het contexttype aan als tools voor ontwikkelaars.
ExtensionContext
Een context die extensiecontent host.
Eigenschappen
-
contextId
tekenreeks
Een unieke ID voor deze context
-
contextType
Het type context waarmee dit overeenkomt.
-
documentId
tekenreeks optioneel
Een UUID voor het document dat aan deze context is gekoppeld, of niet gedefinieerd als deze context niet in een document wordt gehost.
-
documentOrigin
tekenreeks optioneel
De oorsprong van het document dat aan deze context is gekoppeld, of niet gedefinieerd als de context niet in een document wordt gehost.
-
documentUrl
tekenreeks optioneel
De URL van het document dat aan deze context is gekoppeld, of niet gedefinieerd als de context niet in een document wordt gehost.
-
frameId
getal
De ID van het frame voor deze context, of -1 als deze context niet wordt gehost in een frame.
-
incognito
booleaans
Of de context is gekoppeld aan een incognitoprofiel.
-
tabId
getal
De ID van het tabblad voor deze context, of -1 als deze context niet wordt gehost op een tabblad.
-
windowId
getal
De ID van het venster voor deze context, of -1 als deze context niet in een venster wordt gehost.
ExtensionLoadDetails
Details over de gebeurtenis voor het laden van de extensie.
Eigenschappen
-
previousVersion
tekenreeks optioneel
Geeft de vorige versie van de extensie aan. Dit is alleen aanwezig als 'reason' 'update' of 'enable' is. Als 'reason' 'update' is, is dit de versie van de extensie voordat deze werd geüpdatet. Als 'reason' 'enable' is, is dit de huidige versie van de extensie.
-
reden
De reden waarom deze gebeurtenis wordt verstuurd.
MessageSender
Een object met informatie over de scriptcontext die een bericht of verzoek heeft gestuurd.
Eigenschappen
-
documentId
tekenreeks optioneel
Chrome 106+Een UUID van het document dat de verbinding heeft geopend.
-
documentLifecycle
tekenreeks optioneel
Chrome 106+De levenscyclus waarin het document dat de verbinding heeft geopend zich bevindt op het moment dat de poort is gemaakt. De levenscyclusstatus van het document is misschien gewijzigd sinds de poort is gemaakt.
-
frameId
number optioneel
Het frame dat de verbinding heeft geopend. 0 voor frames op het hoogste niveau, positief voor onderliggende frames. Dit wordt alleen ingesteld als
tabis ingesteld. -
id
tekenreeks optioneel
De ID van de extensie die de verbinding heeft geopend, als die er is.
-
nativeApplication
tekenreeks optioneel
Chrome 74+De naam van de systeemeigen app die de verbinding heeft geopend, indien van toepassing.
-
oorsprong
tekenreeks optioneel
Chrome 80+De oorsprong van de pagina of het frame dat de verbinding heeft geopend. Deze kan verschillen van de URL-property (bijvoorbeeld about:blank) of ondoorzichtig zijn (bijvoorbeeld sandboxed iframes). Dit is handig om te bepalen of de oorsprong kan worden vertrouwd als we dat niet meteen kunnen afleiden uit de URL.
-
tab
Tab optioneel
De
tabs.Tabdie de verbinding heeft geopend, indien van toepassing. Deze property is alleen aanwezig als de verbinding is geopend via een tabblad (waaronder contentscripts) en alleen als de ontvanger een extensie is, geen app. -
tlsChannelId
tekenreeks optioneel
De TLS-kanaal-ID van de pagina of het frame dat de verbinding heeft geopend, indien aangevraagd door de extensie en indien beschikbaar.
-
url
tekenreeks optioneel
De URL van de pagina of het frame dat de verbinding heeft geopend. Als de afzender zich in een iframe bevindt, is dit de URL van het iframe en niet de URL van de pagina waarop het wordt gehost.
OnInstalledReason
De reden waarom deze gebeurtenis wordt verstuurd.
Enum
"install"
Geeft aan dat de gebeurtenis een installatie is.
"update"
Geeft aan dat de reden voor de gebeurtenis een extensie-update is.
"chrome_update"
Geeft aan dat de gebeurtenisreden een Chrome-update is.
"shared_module_update"
Geeft aan dat de reden voor de gebeurtenis een update van een gedeelde module is.
OnLoadedReason
De reden waarom deze gebeurtenis wordt verstuurd.
Enum
"install"
De extensie is nieuw geïnstalleerd.
update
De extensie is opnieuw geladen na een update.
"browser_update"
De browser is geüpdatet naar een nieuwe versie.
"enable"
De extensie is opnieuw aangezet vanuit een uitgezette status.
"startup"
De extensie wordt geladen tijdens het opstarten van de browser.
"reload"
De extensie is opnieuw geladen (bijvoorbeeld via chrome.runtime.reload() of de gebruiker heeft de extensie handmatig opnieuw geladen).
OnRestartRequiredReason
De reden waarom de gebeurtenis wordt verzonden. app_update wordt gebruikt als de herstart nodig is omdat de app is geüpdatet naar een nieuwere versie. 'os_update' wordt gebruikt als opnieuw opstarten nodig is omdat de browser/het OS is geüpdatet naar een nieuwere versie. 'periodic' wordt gebruikt als het systeem langer actief is dan de toegestane uptime die is ingesteld in het bedrijfsbeleid.
Enum
"app_update"
Geeft aan dat de gebeurtenisreden een update van de app is.
"os_update"
Geeft aan dat de gebeurtenis een update van het besturingssysteem is.
"periodic"
Geeft aan dat de gebeurtenis een periodieke herstart van de app is.
PlatformArch
De processorarchitectuur van de machine.
Enum
"arm"
Hiermee wordt de processorarchitectuur ingesteld op arm.
"arm64"
Hiermee wordt de processorarchitectuur ingesteld op arm64.
"x86-32"
Hiermee wordt de processorarchitectuur ingesteld op x86-32.
"x86-64"
Hiermee wordt de processorarchitectuur ingesteld op x86-64.
"mips"
Hiermee wordt de processorarchitectuur ingesteld op mips.
"mips64"
Hiermee wordt de processorarchitectuur ingesteld op mips64.
"riscv64"
Hiermee wordt de processorarchitectuur ingesteld op riscv64.
PlatformInfo
Een object met informatie over het huidige platform.
Eigenschappen
-
arch
De processorarchitectuur van de machine.
-
nacl_arch
PlatformNaclArch optioneel
Beëindigd sinds Chrome 149Dit kenmerk is beëindigd na de volledige verwijdering van Native Client.
De native client-architectuur. Dit kan op sommige platforms afwijken van de architectuur.
-
os
Het besturingssysteem waarop Chrome wordt uitgevoerd.
PlatformNaclArch
Deze enum is beëindigd na de volledige verwijdering van Native Client.
De native client-architectuur. Dit kan op sommige platforms afwijken van de architectuur.
Enum
"arm"
Hiermee wordt de native clientarchitectuur ingesteld op arm.
"x86-32"
Hiermee wordt de native clientarchitectuur ingesteld op x86-32.
x86-64
Hiermee wordt de native clientarchitectuur ingesteld op x86-64.
"mips"
Hiermee wordt de native client-architectuur ingesteld op mips.
"mips64"
Hiermee wordt de native client-architectuur ingesteld op mips64.
PlatformOs
Het besturingssysteem waarop Chrome wordt uitgevoerd.
Enum
"mac"
Hiermee wordt het MacOS-besturingssysteem aangegeven.
"win"
Hiermee wordt het Windows-besturingssysteem aangegeven.
"android"
Hiermee wordt het Android-besturingssysteem aangegeven.
"cros"
Hiermee wordt het Chrome-besturingssysteem aangegeven.
"linux"
Hiermee wordt het Linux-besturingssysteem aangegeven.
"openbsd"
Hiermee wordt het besturingssysteem OpenBSD aangegeven.
Port
Een object dat communicatie in 2 richtingen met andere pagina's mogelijk maakt. Ga naar Langdurige verbindingen voor meer informatie.
Eigenschappen
-
name
tekenreeks
De naam van de poort, zoals aangegeven in de aanroep naar
runtime.connect. -
onDisconnect
Event<functionvoidvoid>
Wordt geactiveerd als de poort wordt losgekoppeld van de andere uiteinden.
runtime.lastErrorkan worden ingesteld als de poort is ontkoppeld vanwege een fout. Als de poort wordt gesloten via disconnect, wordt deze gebeurtenis alleen aan de andere kant geactiveerd. Deze gebeurtenis wordt maximaal één keer geactiveerd (zie ook Levensduur van poort).De functie
onDisconnect.addListenerziet er zo uit:(callback: function) => {...}
-
onMessage
Event<functionvoidvoid>
Deze gebeurtenis wordt geactiveerd als postMessage wordt aangeroepen door het andere uiteinde van de poort.
De functie
onMessage.addListenerziet er zo uit:(callback: function) => {...}
-
afzender
MessageSender optioneel
Deze property is alleen aanwezig op poorten die worden doorgegeven aan onConnect-/onConnectExternal-/onConnectNative-listeners.
-
loskoppelen
ongeldig
Verbreek de verbinding met de poort onmiddellijk. Het aanroepen van
disconnect()op een al ontkoppelde poort heeft geen effect. Als een poort wordt ontkoppeld, worden er geen nieuwe gebeurtenissen naar deze poort gestuurd.De functie
disconnectziet er zo uit:() => {...} -
postMessage
ongeldig
Stuur een bericht naar de andere kant van de poort. Als de poort is verbroken, wordt er een fout gegenereerd.
De functie
postMessageziet er zo uit:(message: any) => {...}
-
bericht
alle
Chrome 52+Het bericht dat je wilt sturen. Dit object moet kunnen worden omgezet in json.
-
RequestUpdateCheckStatus
Resultaat van de updatecheck.
Enum
"throttled"
Geeft aan dat de statuscontrole is beperkt. Dit kan gebeuren na herhaalde controles binnen een korte periode.
"no_update"
Geeft aan dat er geen updates beschikbaar zijn om te installeren.
"update_available"
Geeft aan dat er een update beschikbaar is om te installeren.
Eigenschappen
id
De ID van de extensie/app.
Type
tekenreeks
lastError
Ingevuld met een foutmelding als het aanroepen van een API-functie mislukt, anders niet gedefinieerd. Deze wordt alleen gedefinieerd binnen het bereik van de callback van die functie. Als er een fout optreedt, maar runtime.lastError niet wordt geopend binnen de callback, wordt er een bericht geregistreerd in de console met de API-functie die de fout heeft veroorzaakt. API-functies die beloften retourneren, stellen deze property niet in.
Type
object
Eigenschappen
-
bericht
tekenreeks optioneel
Details over de fout die is opgetreden.
Methoden
connect()
chrome.runtime.connect(
extensionId?: string,
connectInfo?: object,
): Port
Probeert listeners te verbinden binnen een extensie (zoals de achtergrondpagina) of andere extensies/apps. Dit is handig voor contentscripts die verbinding maken met hun extensieprocessen, communicatie tussen apps/extensies en webberichten. Dit maakt geen verbinding met listeners in een contentscript. Extensies kunnen verbinding maken met contentscripts die zijn ingesloten in tabbladen via tabs.connect.
Parameters
-
extensionId
tekenreeks optioneel
De ID van de extensie waarmee je verbinding wilt maken. Als je dit weglaat, wordt er geprobeerd verbinding te maken met je eigen extensie. Vereist als u berichten stuurt vanaf een webpagina voor webberichten.
-
connectInfo
object optioneel
-
includeTlsChannelId
booleaans optioneel
Of de TLS-kanaal-ID wordt doorgegeven aan onConnectExternal voor processen die luisteren naar de verbindingsgebeurtenis.
-
name
tekenreeks optioneel
Wordt doorgegeven aan onConnect voor processen die luisteren naar de verbindingsgebeurtenis.
-
Retourzendingen
-
Poort via welke berichten kunnen worden gestuurd en ontvangen. De gebeurtenis onDisconnect van de poort wordt geactiveerd als de extensie niet bestaat.
connectNative()
chrome.runtime.connectNative(
application: string,
): Port
Maakt verbinding met een systeemeigen app op de hostmachine. Voor deze methode is het recht "nativeMessaging" vereist. Ga naar Native Messaging voor meer informatie.
Parameters
-
applicatie
tekenreeks
De naam van de geregistreerde app waarmee je verbinding wilt maken.
Retourzendingen
-
Poort waarmee berichten kunnen worden gestuurd en ontvangen met de app
getBackgroundPage()
chrome.runtime.getBackgroundPage(): Promise<Window | undefined>
Achtergrondpagina's bestaan niet in MV3-extensies.
Haalt het JavaScript-object 'window' op voor de achtergrondpagina die wordt uitgevoerd in de huidige extensie/app. Als de achtergrondpagina een gebeurtenispagina is, zorgt het systeem dat deze wordt geladen voordat de callback wordt aangeroepen. Als er geen achtergrondpagina is, wordt er een fout ingesteld.
Retourzendingen
-
Promise<Window | undefined>
Chrome 99 of hoger
getContexts()
chrome.runtime.getContexts(
filter: ContextFilter,
): Promise<ExtensionContext[]>
Haalt informatie op over actieve contexten die aan deze extensie zijn gekoppeld
Parameters
-
filter
Een filter om overeenkomende contexten te vinden. Een context komt overeen als deze overeenkomt met alle opgegeven velden in het filter. Elk niet-gespecificeerd veld in het filter komt overeen met alle contexten.
Retourzendingen
-
Promise<ExtensionContext[]>
Promise die wordt opgelost met de overeenkomende contexten, indien van toepassing.
getManifest()
chrome.runtime.getManifest(): object
Retourneert informatie over de app of extensie uit het manifest. Het geretourneerde object is een serialisatie van het volledige manifestbestand.
Retourzendingen
-
object
De manifestgegevens.
getPackageDirectoryEntry()
chrome.runtime.getPackageDirectoryEntry(): Promise<DirectoryEntry>
Retourneert een DirectoryEntry voor de pakketdirectory.
Retourzendingen
-
Promise<DirectoryEntry>
Chrome 122 of hoger
getPlatformInfo()
chrome.runtime.getPlatformInfo(): Promise<PlatformInfo>
Retourneert informatie over het huidige platform.
Retourzendingen
-
Promise<PlatformInfo>
Chrome 99 of hogerPromise die wordt opgelost met informatie over het huidige platform.
getURL()
chrome.runtime.getURL(
path: string,
): string
Converteert een relatief pad binnen een installatiemap van een app/extensie naar een volledig gekwalificeerde URL.
Parameters
-
pad
tekenreeks
Een pad naar een bron in een app/extensie, uitgedrukt ten opzichte van de installatiemap.
Retourzendingen
-
tekenreeks
De volledig gekwalificeerde URL naar de bron.
getVersion()
chrome.runtime.getVersion(): string
Retourneert de versie van de extensie zoals aangegeven in het manifest.
Retourzendingen
-
tekenreeks
De versie van de extensie.
openOptionsPage()
chrome.runtime.openOptionsPage(): Promise<void>
Open de optiepagina van je extensie, indien mogelijk.
Het exacte gedrag kan afhankelijk zijn van de sleutel options_ui of options_page van je manifest of van wat Chrome op dat moment ondersteunt. De pagina kan bijvoorbeeld worden geopend in een nieuw tabblad, in chrome://extensions, in een app of de pagina kan gewoon een geopende optiepagina activeren. De aanroepende pagina wordt nooit opnieuw geladen.
Als je extensie geen optiepagina declareert of als Chrome om een andere reden geen optiepagina kan maken, stelt de callback lastError in.
Retourzendingen
-
Promise<void>
Chrome 99 of hoger
reload()
chrome.runtime.reload(): void
Laadt de app of extensie opnieuw. Deze methode wordt niet ondersteund in de kioskmodus. Gebruik voor de kioskmodus de methode chrome.runtime.restart().
requestUpdateCheck()
chrome.runtime.requestUpdateCheck(): Promise<object>
Vraagt om een onmiddellijke updatecheck voor deze app/extensie.
Belangrijk: De meeste extensies/apps moeten deze methode niet gebruiken, omdat Chrome al elke paar uur automatische controles uitvoert en je naar de gebeurtenis runtime.onUpdateAvailable kunt luisteren zonder requestUpdateCheck aan te roepen.
Deze methode is alleen geschikt om aan te roepen in zeer beperkte omstandigheden, bijvoorbeeld als je extensie communiceert met een backend-service en de backend-service heeft vastgesteld dat de versie van de clientextensie erg verouderd is en je een gebruiker wilt vragen om te updaten. De meeste andere toepassingen van requestUpdateCheck, zoals het onvoorwaardelijk aanroepen op basis van een herhalende timer, verspillen waarschijnlijk alleen client-, netwerk- en serverbronnen.
Opmerking: Als deze functie wordt aangeroepen met een callback, retourneert deze geen object, maar de 2 property's als afzonderlijke argumenten die worden doorgegeven aan de callback.
Retourzendingen
-
Promise<object>
Chrome 109+
restart()
chrome.runtime.restart(): void
Start het ChromeOS-apparaat opnieuw op als de app in de kioskmodus wordt uitgevoerd. Anders is het een no-op.
restartAfterDelay()
chrome.runtime.restartAfterDelay(
seconds: number,
): Promise<void>
Start het ChromeOS-apparaat opnieuw op als de app na het aangegeven aantal seconden in de kioskmodus wordt uitgevoerd. Als de functie opnieuw wordt aangeroepen voordat de tijd is verstreken, wordt het opnieuw opstarten vertraagd. Als de waarde -1 wordt aangeroepen, wordt de herstart geannuleerd. In de niet-kioskmodus is dit een no-op. De API mag alleen herhaaldelijk worden aangeroepen door de eerste extensie die deze API aanroept.
Parameters
-
seconden
getal
De wachttijd in seconden voordat het apparaat opnieuw wordt opgestart of -1 om een geplande herstart te annuleren.
Retourzendingen
-
Promise<void>
Chrome 99 of hogerPromise die wordt opgelost als een herstartverzoek opnieuw is gepland.
sendMessage()
chrome.runtime.sendMessage(
extensionId?: string,
message: any,
options?: object,
): Promise<any>
Stuurt één bericht naar gebeurtenislisteners binnen je extensie of een andere extensie/app. Vergelijkbaar met runtime.connect, maar stuurt maar één bericht, met een optionele reactie. Als je een bericht naar je extensie stuurt, wordt de gebeurtenis runtime.onMessage geactiveerd in elk frame van je extensie (behalve het frame van de afzender) of runtime.onMessageExternal als het een andere extensie is. Extensies kunnen met deze methode geen berichten naar contentscripts sturen. Gebruik tabs.sendMessage om berichten naar contentscripts te sturen.
Parameters
-
extensionId
tekenreeks optioneel
De ID van de extensie waarnaar het bericht moet worden gestuurd. Als je dit weglaat, wordt het bericht naar je eigen extensie/app gestuurd. Dit is vereist als je berichten stuurt vanaf een webpagina voor webberichten.
-
bericht
alle
Het bericht dat je wilt sturen. Dit bericht moet een json-object zijn.
-
opties
object optioneel
-
includeTlsChannelId
booleaans optioneel
Of de TLS-kanaal-ID wordt doorgegeven aan onMessageExternal voor processen die luisteren naar de verbindingsgebeurtenis.
-
Retourzendingen
-
Promise<any>
Chrome 99 of hogerOndersteuning voor Promise is toegevoegd voor extensiecontexten in Chrome 99. Als je communiceert van een webpagina naar een extensie, zijn promises beschikbaar vanaf Chrome 118.
sendNativeMessage()
chrome.runtime.sendNativeMessage(
application: string,
message: object,
): Promise<any>
Eén bericht naar een systeemeigen app sturen. Voor deze methode is het recht "nativeMessaging" vereist.
Parameters
-
applicatie
tekenreeks
De naam van de host voor native berichten of doelgegevens.
-
bericht
object
Het bericht dat wordt doorgegeven aan de host voor native berichten.
Retourzendingen
-
Promise<any>
Chrome 99 of hoger
setUninstallURL()
chrome.runtime.setUninstallURL(
url: string,
): Promise<void>
Hiermee stel je de URL in die moet worden bezocht na verwijdering. Dit kan worden gebruikt om gegevens aan de serverzijde op te schonen, analyses uit te voeren en enquêtes te implementeren. Maximaal 1023 tekens.
Parameters
-
url
tekenreeks
URL die moet worden geopend nadat de extensie is verwijderd. Deze URL moet een http:- of https:-schema hebben. Stel een lege tekenreeks in om geen nieuw tabblad te openen na de verwijdering.
Retourzendingen
-
Promise<void>
Chrome 99 of hogerPromise die wordt opgelost als de verwijderings-URL is ingesteld. Als de ingevoerde URL ongeldig is, wordt de promise afgewezen.
Evenementen
onBrowserUpdateAvailable
chrome.runtime.onBrowserUpdateAvailable.addListener(
callback: function,
)
Gebruik runtime.onRestartRequired.
Wordt geactiveerd als er een Chrome-update beschikbaar is, maar deze niet onmiddellijk wordt geïnstalleerd omdat de browser opnieuw moet worden opgestart.
Parameters
-
callback
functie
De parameter
callbackziet er zo uit:() => void
onConnect
chrome.runtime.onConnect.addListener(
callback: function,
)
Wordt geactiveerd als er een verbinding wordt gemaakt via een extensieproces of een contentscript (door runtime.connect).
onConnectExternal
chrome.runtime.onConnectExternal.addListener(
callback: function,
)
Wordt geactiveerd als er een verbinding wordt gemaakt vanuit een andere extensie (door runtime.connect) of vanaf een extern koppelbare website.
onConnectNative
chrome.runtime.onConnectNative.addListener(
callback: function,
)
Wordt geactiveerd als er een verbinding wordt gemaakt vanuit een systeemeigen app. Voor deze gebeurtenis is het recht "nativeMessaging" vereist. Deze functie wordt alleen ondersteund in ChromeOS.
onEnabled
chrome.runtime.onEnabled.addListener(
callback: function,
)
Wordt geactiveerd als een extensie van de status Uit naar de status Aan gaat.
Parameters
-
callback
functie
De parameter
callbackziet er zo uit:() => void
onExtensionLoaded
chrome.runtime.onExtensionLoaded.addListener(
callback: function,
)
Wordt geactiveerd als de extensie wordt toegevoegd aan de set actieve extensies. Dit kan in meerdere scenario's gebeuren: wanneer een extensie voor het eerst wordt geïnstalleerd, wordt geüpdatet naar een nieuwe versie, opnieuw wordt aangezet nadat deze is uitgezet, opnieuw wordt geladen, wordt geladen tijdens het opstarten van de browser of wordt geladen wanneer de browser wordt geüpdatet naar een nieuwe versie.
Parameters
-
callback
functie
De parameter
callbackziet er zo uit:(details: ExtensionLoadDetails) => void
-
details
-
onInstalled
chrome.runtime.onInstalled.addListener(
callback: function,
)
Wordt geactiveerd wanneer de extensie voor het eerst wordt geïnstalleerd, wanneer de extensie wordt geüpdatet naar een nieuwe versie en wanneer Chrome wordt geüpdatet naar een nieuwe versie.
Parameters
-
callback
functie
De parameter
callbackziet er zo uit:(details: object) => void
-
details
object
-
id
tekenreeks optioneel
Geeft de ID aan van de geïmporteerde gedeelde module-extensie die is geüpdatet. Dit is alleen aanwezig als 'reason' 'shared_module_update' is.
-
previousVersion
tekenreeks optioneel
Geeft de vorige versie van de extensie aan, die net is geüpdatet. Dit is alleen aanwezig als 'reason' de waarde 'update' heeft.
-
reden
De reden waarom deze gebeurtenis wordt verstuurd.
-
-
onMessage
chrome.runtime.onMessage.addListener(
callback: function,
)
Wordt geactiveerd als er een bericht wordt gestuurd vanuit runtime.sendMessage of tabs.sendMessage.
Parameters
-
callback
functie
De parameter
callbackziet er zo uit:(message: any, sender: MessageSender, sendResponse: function) => boolean | Promise<any> | undefined
-
bericht
alle
-
afzender
-
sendResponse
functie
De parameter
sendResponseziet er zo uit:(response?: any) => void
-
reactie
alleen optioneel
De reactie die moet worden teruggestuurd naar de afzender van het bericht.
-
-
returns
boolean | Promise<any> | undefined
-
onMessageExternal
chrome.runtime.onMessageExternal.addListener(
callback: function,
)
Wordt geactiveerd als een bericht wordt gestuurd vanuit een andere extensie (door runtime.sendMessage). Kan niet worden gebruikt in een contentscript.
Parameters
-
callback
functie
De parameter
callbackziet er zo uit:(message: any, sender: MessageSender, sendResponse: function) => boolean | Promise<any> | undefined
-
bericht
alle
-
afzender
-
sendResponse
functie
De parameter
sendResponseziet er zo uit:(response?: any) => void
-
reactie
alleen optioneel
De reactie die moet worden teruggestuurd naar de afzender van het bericht.
-
-
returns
boolean | Promise<any> | undefined
-
onRestartRequired
chrome.runtime.onRestartRequired.addListener(
callback: function,
)
Wordt geactiveerd als een app of het apparaat waarop de app wordt uitgevoerd, opnieuw moet worden opgestart. De app moet alle vensters zo snel mogelijk sluiten, zodat de herstart kan plaatsvinden. Als de app niets doet, wordt de app na een respijtperiode van 24 uur opnieuw opgestart. Deze gebeurtenis wordt op dit moment alleen geactiveerd voor ChromeOS-kiosk-apps.
Parameters
-
callback
functie
De parameter
callbackziet er zo uit:(reason: OnRestartRequiredReason) => void
-
reden
-
onStartup
chrome.runtime.onStartup.addListener(
callback: function,
)
Wordt geactiveerd wanneer een profiel waarin deze extensie is geïnstalleerd, voor het eerst wordt opgestart. Deze gebeurtenis wordt niet geactiveerd als een incognitoprofiel wordt gestart, zelfs niet als deze extensie werkt in de gesplitste incognitomodus.
Parameters
-
callback
functie
De parameter
callbackziet er zo uit:() => void
onSuspend
chrome.runtime.onSuspend.addListener(
callback: function,
)
Wordt naar de gebeurtenispagina gestuurd vlak voordat deze wordt verwijderd. Zo kan de extensie wat opschonen. Omdat de pagina wordt verwijderd, is het niet gegarandeerd dat asynchrone bewerkingen die worden gestart tijdens de verwerking van deze gebeurtenis, worden afgerond. Als er meer activiteit voor de gebeurtenispagina plaatsvindt voordat deze wordt verwijderd, wordt de gebeurtenis onSuspendCanceled gestuurd en wordt de pagina niet verwijderd.
Parameters
-
callback
functie
De parameter
callbackziet er zo uit:() => void
onSuspendCanceled
chrome.runtime.onSuspendCanceled.addListener(
callback: function,
)
Wordt na onSuspend gestuurd om aan te geven dat de app toch niet wordt verwijderd.
Parameters
-
callback
functie
De parameter
callbackziet er zo uit:() => void
onUpdateAvailable
chrome.runtime.onUpdateAvailable.addListener(
callback: function,
)
Wordt geactiveerd als er een update beschikbaar is, maar niet onmiddellijk wordt geïnstalleerd omdat de app op dat moment wordt uitgevoerd. Als je niets doet, wordt de update geïnstalleerd de volgende keer dat de achtergrondpagina wordt verwijderd. Als je wilt dat de update eerder wordt geïnstalleerd, kun je chrome.runtime.reload() expliciet aanroepen. Als je extensie een permanente achtergrondpagina gebruikt, wordt de achtergrondpagina natuurlijk nooit verwijderd. Tenzij je chrome.runtime.reload() handmatig aanroept als reactie op deze gebeurtenis, wordt de update pas geïnstalleerd de volgende keer dat Chrome zelf opnieuw wordt opgestart. Als er geen handlers naar deze gebeurtenis luisteren en je extensie een permanente achtergrondpagina heeft, gedraagt deze zich alsof chrome.runtime.reload() wordt aangeroepen als reactie op deze gebeurtenis.
Parameters
-
callback
functie
De parameter
callbackziet er zo uit:(details: object) => void
-
details
object
-
versie
tekenreeks
Het versienummer van de beschikbare update.
-
-
onUserScriptConnect
chrome.runtime.onUserScriptConnect.addListener(
callback: function,
)
Wordt geactiveerd als er een verbinding wordt gemaakt vanuit een gebruikersscript van deze extensie.
onUserScriptMessage
chrome.runtime.onUserScriptMessage.addListener(
callback: function,
)
Wordt geactiveerd als een bericht wordt gestuurd vanuit een gebruikersscript dat aan dezelfde extensie is gekoppeld.
Parameters
-
callback
functie
De parameter
callbackziet er zo uit:(message: any, sender: MessageSender, sendResponse: function) => boolean | undefined
-
bericht
alle
-
afzender
-
sendResponse
functie
De parameter
sendResponseziet er zo uit:(response?: any) => void
-
reactie
alleen optioneel
De reactie die moet worden teruggestuurd naar de afzender van het bericht.
-
-
returns
boolean | undefined
-