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. U kunt deze API ook gebruiken om het relatieve pad van URL's om te zetten in volledig gekwalificeerde URL's.
Overzicht
De Runtime API biedt methoden ter ondersteuning van een aantal functionaliteitsgebieden die uw extensies kunnen gebruiken:
- Bericht doorgeven
- Uw extensie kan communiceren met verschillende contexten binnen uw extensie en ook met andere extensies met behulp van deze methoden en gebeurtenissen: connect() , onConnect , onConnectExternal , sendMessage() , onMessage en onMessageExternal . Bovendien kan uw extensie berichten doorgeven aan systeemeigen toepassingen op het apparaat van de gebruiker met behulp van connectNative() en sendNativeMessage() .
- Toegang tot extensie- en platformmetadata
- Met deze methoden kunt u verschillende specifieke metagegevens over de extensie en het platform ophalen. Methoden in deze categorie zijn onder meer getManifest() en getPlatformInfo() .
- Levenscyclus en opties van extensies beheren
- Met deze eigenschappen kunt u enkele metabewerkingen op de extensie uitvoeren en de optiepagina weergeven. Methoden en gebeurtenissen in deze categorie zijn onder meer onInstalled , onStartup , openOptionsPage() , reload() , requestUpdateCheck() en setUninstallURL() .
- Hulpprogramma's
- Deze methoden bieden nut zoals de conversie van interne resourcerepresentaties naar externe formaten. Methoden in deze categorie omvatten getURL() .
- Hulpprogramma's voor kioskmodus
- Deze methoden zijn alleen beschikbaar op ChromeOS en bestaan voornamelijk om kiosk-implementaties te ondersteunen. Methoden in deze categorie zijn onder meer restart en restartAfterDelay .
Machtigingen
Voor de meeste methoden op de Runtime API is geen enkele toestemming vereist, behalve voor sendNativeMessage en connectNative , waarvoor de nativeMessaging
machtiging vereist is.
Manifest
In het volgende voorbeeld ziet u hoe u de nativeMessaging
machtiging in het manifest declareert:
manifest.json:
{
"name": "My extension",
...
"permissions": [
"nativeMessaging"
],
...
}
Gebruiksgevallen
Voeg een afbeelding toe aan een webpagina
Als een webpagina toegang wil krijgen tot een item dat op een ander domein wordt gehost, moet de volledige URL van de bron worden opgegeven (bijvoorbeeld <img src="https://example.com/logo.png">
). Hetzelfde geldt voor het opnemen van een extensie-item op een webpagina. De twee verschillen zijn dat de middelen van de extensie moeten worden weergegeven als voor het internet toegankelijke bronnen en dat inhoudsscripts doorgaans verantwoordelijk zijn voor het injecteren van extensie-middelen.
In dit voorbeeld voegt de extensie logo.png
toe aan de pagina waarop het inhoudsscript wordt geïnjecteerd door runtime.getURL()
te gebruiken om een volledig gekwalificeerde URL te maken. Maar eerst moet het asset in het manifest worden gedeclareerd als een webtoegankelijke bron.
manifest.json:
{
...
"web_accessible_resources": [
{
"resources": [ "logo.png" ],
"matches": [ "https://*/*" ]
}
],
...
}
inhoud.js:
{ // Block used to avoid setting global variables
const img = document.createElement('img');
img.src = chrome.runtime.getURL('logo.png');
document.body.append(img);
}
Gegevens van de servicemedewerker naar een inhoudsscript verzenden
Het komt vaak voor dat de inhoudsscripts van een extensie gegevens nodig hebben die worden beheerd door een ander deel van de extensie, zoals de servicemedewerker. Net zoals twee browservensters die naar dezelfde webpagina worden geopend, hebben deze twee contexten niet rechtstreeks toegang tot elkaars waarden. In plaats daarvan kan de extensie het doorgeven van berichten gebruiken om tussen deze verschillende contexten te coördineren.
In dit voorbeeld heeft het inhoudsscript enkele gegevens nodig van de servicemedewerker van de extensie om de gebruikersinterface te initialiseren. Om deze gegevens te verkrijgen, geeft het een get-user-data
bericht door aan de servicemedewerker, en reageert het met een kopie van de gegevens van de gebruiker.
inhoud.js:
// 1. Send a message to the service worker requesting the user's data
chrome.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);
});
achtergrond.js:
// Example of a simple user data object
const user = {
username: 'demo-user'
};
chrome.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);
}
});
Verzamel feedback over het verwijderen
Veel extensies gebruiken enquêtes na de installatie om te begrijpen hoe de extensie zijn gebruikers beter van dienst kan zijn en de retentie kan verbeteren. In het volgende voorbeeld ziet u hoe u deze functionaliteit toevoegt.
achtergrond.js:
chrome.runtime.onInstalled.addListener(details => {
if (details.reason === chrome.runtime.OnInstalledReason.INSTALL) {
chrome.runtime.setUninstallURL('https://example.com/extension-survey');
}
});
Voorbeelden van uitbreidingen
Zie de Manifest V3 - Web Toegankelijke bronnen demo voor meer Runtime API-voorbeelden.
Soorten
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 `{}` zal dus overeenkomen met alle beschikbare contexten.
Eigenschappen
- contextIds
tekenreeks[] optioneel
- contextTypen
ContextType [] optioneel
- documentIds
tekenreeks[] optioneel
- documentOrigins
tekenreeks[] optioneel
- documentUrls
tekenreeks[] optioneel
- frameIds
nummer[] optioneel
- incognito
Booleaans optioneel
- tabbladID's
nummer[] optioneel
- vensterIds
nummer[] optioneel
ContextType
Enum
"TAB" "POP-UP" "ACHTERGROND" "OFFSCREEN_DOCUMENT" "ZIJ_PANEL" "ONTWIKKELAAR_TOOLS"
Specificeert het contexttype als een tabblad
Specificeert het contexttype als een extensiepop-upvenster
Specificeert het contexttype als servicemedewerker.
Specificeert het contexttype als een document buiten het scherm.
Specificeert het contexttype als zijpaneel.
Specificeert het contexttype als ontwikkelaarstools.
ExtensionContext
Een contexthostingextensie-inhoud.
Eigenschappen
- contextId
snaar
Een unieke identificatie 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 ongedefinieerd als deze context niet in een document wordt gehost.
- documentHerkomst
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
nummer
De ID van het frame voor deze context, of -1 als deze context niet in een frame wordt gehost.
- incognito
Booleaans
Of de context is gekoppeld aan een incognitoprofiel.
- tabId
nummer
De ID van het tabblad voor deze context, of -1 als deze context niet op een tabblad wordt gehost.
- vensterId
nummer
De ID van het venster voor deze context, of -1 als deze context niet in een venster wordt gehost.
MessageSender
Een object dat informatie bevat over de scriptcontext die een bericht of verzoek heeft verzonden.
Eigenschappen
- documentId
tekenreeks optioneel
Chroom 106+Een UUID van het document dat de verbinding heeft geopend.
- documentLevenscyclus
tekenreeks optioneel
Chroom 106+De levenscyclus waarin het document waarmee de verbinding is geopend zich bevindt op het moment dat de poort werd gemaakt. Houd er rekening mee dat de levenscyclusstatus van het document mogelijk is gewijzigd sinds het maken van de poort.
- frameId
nummer optioneel
Het frame dat de verbinding opende. 0 voor frames op het hoogste niveau, positief voor onderliggende frames. Dit wordt alleen ingesteld als
tab
is ingesteld. - Identiteitskaart
tekenreeks optioneel
De ID van de extensie die de verbinding heeft geopend, indien aanwezig.
- native toepassing
tekenreeks optioneel
Chroom 74+De naam van de systeemeigen toepassing die de verbinding heeft geopend, indien aanwezig.
- oorsprong
tekenreeks optioneel
Chroom 80+De oorsprong van de pagina of het frame waarmee de verbinding is geopend. Deze kan afwijken van de url-eigenschap (bijvoorbeeld about:blank) of ondoorzichtig zijn (bijvoorbeeld iframes in een sandbox). Dit is handig om te bepalen of de oorsprong betrouwbaar is als we dit niet onmiddellijk aan de hand van de URL kunnen zien.
- tabblad
Tabblad optioneel
De
tabs.Tab
waarmee de verbinding is geopend, indien aanwezig. Deze eigenschap is alleen aanwezig als de verbinding is geopend vanaf een tabblad (inclusief inhoudsscripts), en alleen als de ontvanger een extensie is en geen app. - tlsChannelId
tekenreeks optioneel
De TLS-kanaal-ID van de pagina of het frame waarmee de verbinding is geopend, indien aangevraagd door de extensie en indien beschikbaar.
- URL
tekenreeks optioneel
De URL van de pagina of het frame waarmee de verbinding is 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 iframe wordt gehost.
OnInstalledReason
De reden dat deze gebeurtenis wordt verzonden.
Enum
"installeren" "update" "chrome_update" "gedeelde_module_update"
Specificeert de gebeurtenisreden als een installatie.
Specificeert de gebeurtenisreden als een extensie-update.
Specificeert de reden van de gebeurtenis als een Chrome-update.
Specificeert de gebeurtenisreden als een update van een gedeelde module.
OnRestartRequiredReason
De reden dat de gebeurtenis wordt verzonden. 'app_update' wordt gebruikt wanneer opnieuw opstarten nodig is omdat de applicatie wordt bijgewerkt naar een nieuwere versie. 'os_update' wordt gebruikt wanneer opnieuw opstarten nodig is omdat de browser/het besturingssysteem wordt bijgewerkt naar een nieuwere versie. 'periodiek' wordt gebruikt wanneer het systeem langer draait dan de toegestane uptime die is vastgelegd in het bedrijfsbeleid.
Enum
"app_update" "os_update" "periodiek"
Specificeert de reden van de gebeurtenis als een update van de app.
Specificeert de gebeurtenisreden als een update van het besturingssysteem.
Specificeert de gebeurtenisreden als een periodieke herstart van de app.
PlatformArch
De processorarchitectuur van de machine.
Enum
"arm" "arm64" "x86-32" "x86-64" "mips" "mips64"
Specificeert de processorarchitectuur als arm.
Specificeert de processorarchitectuur als arm64.
Specificeert de processorarchitectuur als x86-32.
Specificeert de processorarchitectuur als x86-64.
Specificeert de processorarchitectuur als mips.
Specificeert de processorarchitectuur als mips64.
PlatformInfo
Een object dat informatie bevat over het huidige platform.
Eigenschappen
- boog
De processorarchitectuur van de machine.
- nacl_arch
De native clientarchitectuur. Dit kan op sommige platforms afwijken van de boog.
- os
Het besturingssysteem waar Chrome op draait.
PlatformNaclArch
De native clientarchitectuur. Dit kan op sommige platforms afwijken van de boog.
Enum
"arm" "x86-32" "x86-64" "mips" "mips64"
Specificeert de native clientarchitectuur als arm.
Specificeert de native clientarchitectuur als x86-32.
Specificeert de native clientarchitectuur als x86-64.
Specificeert de native clientarchitectuur als mips.
Specificeert de native clientarchitectuur als mips64.
PlatformOs
Het besturingssysteem waar Chrome op draait.
Enum
"mac" "winnen" "Android" "kruis" "linux" "openbsd" "fuchsia"
Specificeert het MacOS-besturingssysteem.
Specificeert het Windows-besturingssysteem.
Specificeert het Android-besturingssysteem.
Specificeert het Chrome-besturingssysteem.
Specificeert het Linux-besturingssysteem.
Specificeert het OpenBSD-besturingssysteem.
Specificeert het Fuchsia-besturingssysteem.
Port
Een object dat tweerichtingscommunicatie met andere pagina's mogelijk maakt. Zie Langdurige verbindingen voor meer informatie.
Eigenschappen
- naam
snaar
De naam van de poort, zoals opgegeven in de aanroep van
runtime.connect
. - opVerbinding verbreken
Gebeurtenis<functionvoidvoid>
Wordt geactiveerd wanneer de poort wordt losgekoppeld van het/de andere uiteinde(n).
runtime.lastError
kan worden ingesteld als de verbinding met de poort is verbroken 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 Poortlevensduur ).De
onDisconnect.addListener
-functie ziet er als volgt uit:(callback: function) => {...}
- op Bericht
Gebeurtenis<functionvoidvoid>
Deze gebeurtenis wordt geactiveerd wanneer postMessage wordt aangeroepen door het andere uiteinde van de poort.
De
onMessage.addListener
-functie ziet er als volgt uit:(callback: function) => {...}
- afzender
MessageSender optioneel
Deze eigenschap is alleen aanwezig op poorten die worden doorgegeven aan onConnect / onConnectExternal / onConnectNative -listeners.
- loskoppelen
leegte
Ontkoppel onmiddellijk de poort. Het aanroepen van
disconnect()
op een reeds verbroken poort heeft geen effect. Wanneer een poort wordt ontkoppeld, worden er geen nieuwe gebeurtenissen naar deze poort verzonden.De
disconnect
ziet er als volgt uit:() => {...}
- postBericht
leegte
Stuur een bericht naar het andere uiteinde van de poort. Als de poort wordt losgekoppeld, wordt er een fout gegenereerd.
De
postMessage
functie ziet er als volgt uit:(message: any) => {...}
- bericht
elk
Chroom 52+Het bericht dat moet worden verzonden. Dit object moet JSON-geschikt zijn.
RequestUpdateCheckStatus
Resultaat van de updatecontrole.
Enum
"gesmoord" "no_update" "update_beschikbaar"
Geeft aan dat de statuscontrole is beperkt. Dit kan gebeuren na herhaalde controles binnen een korte tijd.
Geeft aan dat er geen updates beschikbaar zijn om te installeren.
Geeft aan dat er een update beschikbaar is om te installeren.
Eigenschappen
id
De ID van de extensie/app.
Type
snaar
lastError
Wordt gevuld met een foutmelding als het aanroepen van een API-functie mislukt; anders ongedefinieerd. Dit wordt alleen gedefinieerd binnen het bereik van de callback van die functie. Als er een fout optreedt, maar er geen toegang wordt verkregen tot runtime.lastError
tijdens de callback, wordt er een bericht op de console geregistreerd met de API-functie die de fout heeft veroorzaakt. API-functies die beloftes retourneren, stellen deze eigenschap niet in.
Type
voorwerp
Eigenschappen
- bericht
tekenreeks optioneel
Details over de fout die is opgetreden.
Methoden
connect()
chrome.runtime.connect(
extensionId?: string,
connectInfo?: object,
)
Probeert luisteraars te verbinden binnen een extensie (zoals de achtergrondpagina) of andere extensies/apps. Dit is handig voor inhoudsscripts die verbinding maken met hun extensieprocessen, communicatie tussen apps/extensies en webberichten . Houd er rekening mee dat dit geen verbinding maakt met luisteraars in een inhoudsscript. Extensies kunnen via tabs.connect
verbinding maken met inhoudsscripts die in tabbladen zijn ingebed.
Parameters
- extensieId
tekenreeks optioneel
De ID van de extensie waarmee verbinding moet worden gemaakt. Als u dit weglaat, wordt geprobeerd verbinding te maken met uw eigen toestel. Vereist bij het verzenden van berichten 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.
- naam
tekenreeks optioneel
Wordt doorgegeven aan onConnect voor processen die luisteren naar de verbindingsgebeurtenis.
Retouren
Poort waarlangs berichten kunnen worden verzonden en ontvangen. De onDisconnect- gebeurtenis van de poort wordt geactiveerd als de extensie niet bestaat.
connectNative()
chrome.runtime.connectNative(
application: string,
)
Maakt verbinding met een native applicatie op de hostmachine. Voor deze methode is de machtiging "nativeMessaging"
vereist. Zie Native Messaging voor meer informatie.
Parameters
- sollicitatie
snaar
De naam van de geregistreerde applicatie waarmee verbinding moet worden gemaakt.
Retouren
Poort waarlangs berichten kunnen worden verzonden en ontvangen met de applicatie
getBackgroundPage()
chrome.runtime.getBackgroundPage(
callback?: function,
)
Haalt het JavaScript 'window'-object op voor de achtergrondpagina die in de huidige extensie/app wordt uitgevoerd. Als de achtergrondpagina een gebeurtenispagina is, zorgt het systeem ervoor dat deze is geladen voordat de callback wordt aangeroepen. Als er geen achtergrondpagina is, wordt er een fout ingesteld.
Parameters
- terugbellen
functie optioneel
De
callback
parameter ziet er als volgt uit:(backgroundPage?: Window) => void
- achtergrondpagina
Venster optioneel
Het JavaScript-vensterobject voor de achtergrondpagina.
Retouren
Belofte<Venster | ongedefinieerd>
Chroom 99+Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.
getContexts()
chrome.runtime.getContexts(
filter: ContextFilter,
callback?: function,
)
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.
- terugbellen
functie optioneel
De
callback
parameter ziet er als volgt uit:(contexts: ExtensionContext[]) => void
- contexten
De overeenkomende contexten, indien aanwezig.
Retouren
Belofte< ExtensieContext []>
Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.
getManifest()
chrome.runtime.getManifest()
Retourneert details over de app of extensie uit het manifest. Het geretourneerde object is een serialisatie van het volledige manifestbestand .
Retouren
voorwerp
De manifestdetails.
getPackageDirectoryEntry()
chrome.runtime.getPackageDirectoryEntry(
callback?: function,
)
Retourneert een DirectoryEntry voor de pakketmap.
Parameters
- terugbellen
functie optioneel
De
callback
parameter ziet er als volgt uit:(directoryEntry: DirectoryEntry) => void
- mapInvoer
DirectoryInvoer
Retouren
Belofte<DirectoryEntry>
Chroom 122+Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.
getPlatformInfo()
chrome.runtime.getPlatformInfo(
callback?: function,
)
Retourneert informatie over het huidige platform.
Parameters
- terugbellen
functie optioneel
De
callback
parameter ziet er als volgt uit:(platformInfo: PlatformInfo) => void
- platformInfo
Retouren
Beloof < PlatformInfo >
Chroom 99+Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.
getURL()
chrome.runtime.getURL(
path: string,
)
Converteert een relatief pad binnen een installatiemap voor een app/extensie naar een volledig gekwalificeerde URL.
Parameters
- pad
snaar
Een pad naar een bron binnen een app/extensie, uitgedrukt ten opzichte van de installatiemap ervan.
Retouren
snaar
De volledig gekwalificeerde URL naar de bron.
openOptionsPage()
chrome.runtime.openOptionsPage(
callback?: function,
)
Open indien mogelijk de optiepagina van uw extensie.
Het precieze gedrag kan afhangen van options_ui
of options_page
sleutel van uw manifest, of van wat Chrome op dat moment ondersteunt. De pagina kan bijvoorbeeld worden geopend op een nieuw tabblad, binnen chrome://extensions, binnen een app, of alleen op een geopende optiepagina. Het zal er nooit voor zorgen dat de bellerpagina opnieuw wordt geladen.
Als uw extensie geen optiepagina declareert, of Chrome er om een andere reden niet in is geslaagd er een te maken, wordt bij de callback lastError
ingesteld.
Parameters
- terugbellen
functie optioneel
De
callback
parameter ziet er als volgt uit:() => void
Retouren
Beloof <nietig>
Chroom 99+Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.
reload()
chrome.runtime.reload()
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(
callback?: function,
)
Verzoek om onmiddellijke updatecontrole voor deze app/extensie.
Belangrijk : de meeste extensies/apps zouden deze methode niet moeten gebruiken, omdat Chrome al om de paar uur automatische controles uitvoert en u kunt luisteren naar de runtime.onUpdateAvailable
-gebeurtenis zonder dat u requestUpdateCheck hoeft aan te roepen.
Deze methode is alleen geschikt om in zeer beperkte omstandigheden aan te roepen, bijvoorbeeld als uw extensie met een backend-service praat en de backend-service heeft vastgesteld dat de versie van de clientextensie erg verouderd is en u een gebruiker wilt vragen om update. De meeste andere toepassingen van requestUpdateCheck, zoals het onvoorwaardelijk aanroepen op basis van een zich herhalende timer, dienen waarschijnlijk alleen maar om client-, netwerk- en serverbronnen te verspillen.
Opmerking: wanneer deze wordt aangeroepen met een callback, retourneert deze functie, in plaats van een object terug te geven, de twee eigenschappen als afzonderlijke argumenten die aan de callback worden doorgegeven.
Parameters
- terugbellen
functie optioneel
De
callback
parameter ziet er als volgt uit:(result: object) => void
- resultaat
voorwerp
Chroom 109+RequestUpdateCheckResult-object dat de status van de updatecontrole en eventuele details van het resultaat bevat als er een update beschikbaar is
- status
Resultaat van de updatecontrole.
- versie
tekenreeks optioneel
Als er een update beschikbaar is, bevat deze de versie van de beschikbare update.
Retouren
Beloof<object>
Chroom 109+Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.
restart()
chrome.runtime.restart()
Start het ChromeOS-apparaat opnieuw op wanneer de app in de kioskmodus draait. Anders is het geen operatie.
restartAfterDelay()
chrome.runtime.restartAfterDelay(
seconds: number,
callback?: function,
)
Start het ChromeOS-apparaat opnieuw op wanneer de app na de opgegeven seconden in de kioskmodus draait. Als u opnieuw belt voordat de tijd is verstreken, wordt het opnieuw opstarten uitgesteld. Indien aangeroepen met een waarde van -1, wordt het opnieuw opstarten geannuleerd. Het is een no-op in de niet-kioskmodus. Het is alleen toegestaan om herhaaldelijk door de eerste extensie te worden aangeroepen om deze API aan te roepen.
Parameters
- seconden
nummer
Tijd om in seconden te wachten voordat het apparaat opnieuw wordt opgestart, of -1 om een geplande herstart te annuleren.
- terugbellen
functie optioneel
De
callback
parameter ziet er als volgt uit:() => void
Retouren
Beloof <nietig>
Chroom 99+Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.
sendMessage()
chrome.runtime.sendMessage(
extensionId?: string,
message: any,
options?: object,
callback?: function,
)
Stuurt één bericht naar gebeurtenislisteners binnen uw extensie of een andere extensie/app. Vergelijkbaar met runtime.connect
, maar verzendt slechts één bericht, met een optioneel antwoord. Als u naar uw extensie verzendt, wordt de gebeurtenis runtime.onMessage
geactiveerd in elk frame van uw extensie (behalve het frame van de afzender), of runtime.onMessageExternal
, als het een andere extensie is. Houd er rekening mee dat extensies met deze methode geen berichten naar inhoudsscripts kunnen sturen. Gebruik tabs.sendMessage
om berichten naar inhoudsscripts te verzenden.
Parameters
- extensieId
tekenreeks optioneel
De ID van het toestel waarnaar het bericht moet worden verzonden. Indien u dit weglaat, wordt het bericht naar uw eigen toestel/app verzonden. Vereist bij het verzenden van berichten vanaf een webpagina voor webberichten .
- bericht
elk
Het bericht dat moet worden verzonden. Dit bericht moet een JSON-geschikt object zijn.
- opties
object optioneel
- includeTlsChannelId
Booleaans optioneel
Of de TLS-kanaal-ID wordt doorgegeven aan onMessageExternal voor processen die luisteren naar de verbindingsgebeurtenis.
- terugbellen
functie optioneel
Chroom 99+De
callback
parameter ziet er als volgt uit:(response: any) => void
- antwoord
elk
Het JSON-antwoordobject dat is verzonden door de behandelaar van het bericht. Als er een fout optreedt tijdens het verbinden met de extensie, wordt de callback zonder argumenten aangeroepen en wordt
runtime.lastError
ingesteld op het foutbericht.
Retouren
Beloof<elke>
Chroom 99+Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.
sendNativeMessage()
chrome.runtime.sendNativeMessage(
application: string,
message: object,
callback?: function,
)
Stuur één bericht naar een native applicatie. Voor deze methode is de machtiging "nativeMessaging"
vereist.
Parameters
- sollicitatie
snaar
De naam van de native messaging-host.
- bericht
voorwerp
Het bericht dat wordt doorgegeven aan de native messaging-host.
- terugbellen
functie optioneel
Chroom 99+De
callback
parameter ziet er als volgt uit:(response: any) => void
- antwoord
elk
Het antwoordbericht dat is verzonden door de native messaging-host. Als er een fout optreedt tijdens het verbinden met de native messaging-host, wordt de callback zonder argumenten aangeroepen en wordt
runtime.lastError
ingesteld op het foutbericht.
Retouren
Beloof<elke>
Chroom 99+Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.
setUninstallURL()
chrome.runtime.setUninstallURL(
url: string,
callback?: function,
)
Stelt de URL in die moet worden bezocht bij het verwijderen. Dit kan worden gebruikt om gegevens op de server op te schonen, analyses uit te voeren en enquêtes te implementeren. Maximaal 1023 tekens.
Parameters
- URL
snaar
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 bij het verwijderen geen nieuw tabblad te openen.
- terugbellen
functie optioneel
Chroom 45+De
callback
parameter ziet er als volgt uit:() => void
Retouren
Beloof <nietig>
Chroom 99+Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.
Evenementen
onBrowserUpdateAvailable
chrome.runtime.onBrowserUpdateAvailable.addListener(
callback: function,
)
Gebruik runtime.onRestartRequired
.
Wordt geactiveerd wanneer er een Chrome-update beschikbaar is, maar wordt niet onmiddellijk geïnstalleerd omdat de browser opnieuw moet worden opgestart.
Parameters
- terugbellen
functie
De
callback
parameter ziet er als volgt uit:() => void
onConnect
chrome.runtime.onConnect.addListener(
callback: function,
)
Wordt geactiveerd wanneer er verbinding wordt gemaakt vanuit een extensieproces of een inhoudsscript (door runtime.connect
).
Parameters
- terugbellen
functie
De
callback
parameter ziet er als volgt uit:(port: Port) => void
- haven
onConnectExternal
chrome.runtime.onConnectExternal.addListener(
callback: function,
)
Wordt geactiveerd wanneer er verbinding wordt gemaakt vanaf een andere extensie (door runtime.connect
), of vanaf een extern verbindbare website.
Parameters
- terugbellen
functie
De
callback
parameter ziet er als volgt uit:(port: Port) => void
- haven
onConnectNative
chrome.runtime.onConnectNative.addListener(
callback: function,
)
Wordt geactiveerd wanneer er verbinding wordt gemaakt vanuit een native applicatie. Voor deze gebeurtenis is de machtiging "nativeMessaging"
vereist. Het wordt alleen ondersteund op Chrome OS.
Parameters
- terugbellen
functie
De
callback
parameter ziet er als volgt uit:(port: Port) => void
- haven
onInstalled
chrome.runtime.onInstalled.addListener(
callback: function,
)
Wordt geactiveerd wanneer de extensie voor het eerst wordt geïnstalleerd, wanneer de extensie wordt bijgewerkt naar een nieuwe versie en wanneer Chrome wordt bijgewerkt naar een nieuwe versie.
Parameters
- terugbellen
functie
De
callback
parameter ziet er als volgt uit:(details: object) => void
- details
voorwerp
- Identiteitskaart
tekenreeks optioneel
Geeft de ID aan van de geïmporteerde gedeelde module-extensie die is bijgewerkt. Dit is alleen aanwezig als 'reden' 'shared_module_update' is.
- vorige versie
tekenreeks optioneel
Geeft de vorige versie van de extensie aan, die zojuist is bijgewerkt. Dit is alleen aanwezig als 'reden' 'update' is.
- reden
De reden dat deze gebeurtenis wordt verzonden.
onMessage
chrome.runtime.onMessage.addListener(
callback: function,
)
Wordt geactiveerd wanneer een bericht wordt verzonden vanuit een extensieproces (door runtime.sendMessage
) of een inhoudsscript (door tabs.sendMessage
).
Parameters
- terugbellen
functie
De
callback
parameter ziet er als volgt uit:(message: any, sender: MessageSender, sendResponse: function) => boolean | undefined
- bericht
elk
- afzender
- stuur antwoord
functie
De
sendResponse
parameter ziet er als volgt uit:() => void
- retourneert
booleaans | ongedefinieerd
onMessageExternal
chrome.runtime.onMessageExternal.addListener(
callback: function,
)
Wordt geactiveerd wanneer een bericht wordt verzonden vanaf een ander toestel (door runtime.sendMessage
). Kan niet worden gebruikt in een inhoudsscript.
Parameters
- terugbellen
functie
De
callback
parameter ziet er als volgt uit:(message: any, sender: MessageSender, sendResponse: function) => boolean | undefined
- bericht
elk
- afzender
- stuur antwoord
functie
De
sendResponse
parameter ziet er als volgt uit:() => void
- retourneert
booleaans | ongedefinieerd
onRestartRequired
chrome.runtime.onRestartRequired.addListener(
callback: function,
)
Wordt geactiveerd wanneer een app of het apparaat waarop deze wordt uitgevoerd, opnieuw moet worden opgestart. De app moet alle vensters zo snel mogelijk sluiten, zodat de app opnieuw kan worden opgestart. Als de app niets doet, wordt een herstart afgedwongen nadat een respijtperiode van 24 uur is verstreken. Momenteel wordt deze gebeurtenis alleen geactiveerd voor Chrome OS-kiosk-apps.
Parameters
- terugbellen
functie
De
callback
parameter ziet er als volgt uit:(reason: OnRestartRequiredReason) => void
- reden
onStartup
chrome.runtime.onStartup.addListener(
callback: function,
)
Wordt geactiveerd wanneer een profiel waarop deze extensie is geïnstalleerd, voor het eerst wordt opgestart. Deze gebeurtenis wordt niet geactiveerd wanneer een incognitoprofiel wordt gestart, zelfs als deze extensie in de 'gesplitste' incognitomodus werkt.
Parameters
- terugbellen
functie
De
callback
parameter ziet er als volgt uit:() => void
onSuspend
chrome.runtime.onSuspend.addListener(
callback: function,
)
Verzonden naar de evenementenpagina vlak voordat deze wordt verwijderd. Dit geeft de extensie de mogelijkheid om wat op te ruimen. Houd er rekening mee dat, aangezien de pagina wordt verwijderd, asynchrone bewerkingen die tijdens het afhandelen van deze gebeurtenis zijn gestart, niet gegarandeerd worden voltooid. Als er meer activiteit op de gebeurtenispagina plaatsvindt voordat deze wordt verwijderd, wordt de onSuspendCanceled-gebeurtenis verzonden en wordt de pagina niet verwijderd.
Parameters
- terugbellen
functie
De
callback
parameter ziet er als volgt uit:() => void
onSuspendCanceled
chrome.runtime.onSuspendCanceled.addListener(
callback: function,
)
Verzonden na onSuspend om aan te geven dat de app toch niet wordt verwijderd.
Parameters
- terugbellen
functie
De
callback
parameter ziet er als volgt uit:() => void
onUpdateAvailable
chrome.runtime.onUpdateAvailable.addListener(
callback: function,
)
Wordt geactiveerd wanneer er een update beschikbaar is, maar niet onmiddellijk wordt geïnstalleerd omdat de app momenteel actief is. Als u niets doet, wordt de update geïnstalleerd de volgende keer dat de achtergrondpagina wordt verwijderd. Als u wilt dat deze eerder wordt geïnstalleerd, kunt u expliciet chrome.runtime.reload() aanroepen. Als uw extensie een permanente achtergrondpagina gebruikt, wordt de achtergrondpagina natuurlijk nooit verwijderd, dus tenzij u chrome.runtime.reload() handmatig aanroept als reactie op deze gebeurtenis, wordt de update pas geïnstalleerd de volgende keer dat Chrome zelf opnieuw opstart. Als er geen handlers naar deze gebeurtenis luisteren en uw extensie een permanente achtergrondpagina heeft, gedraagt deze zich alsof chrome.runtime.reload() wordt aangeroepen als reactie op deze gebeurtenis.
Parameters
- terugbellen
functie
De
callback
parameter ziet er als volgt uit:(details: object) => void
- details
voorwerp
- versie
snaar
Het versienummer van de beschikbare update.
onUserScriptConnect
chrome.runtime.onUserScriptConnect.addListener(
callback: function,
)
Wordt geactiveerd wanneer er verbinding wordt gemaakt vanuit een gebruikersscript van deze extensie.
Parameters
- terugbellen
functie
De
callback
parameter ziet er als volgt uit:(port: Port) => void
- haven
onUserScriptMessage
chrome.runtime.onUserScriptMessage.addListener(
callback: function,
)
Wordt geactiveerd wanneer een bericht wordt verzonden vanuit een gebruikersscript dat aan dezelfde extensie is gekoppeld.
Parameters
- terugbellen
functie
De
callback
parameter ziet er als volgt uit:(message: any, sender: MessageSender, sendResponse: function) => boolean | undefined
- bericht
elk
- afzender
- stuur antwoord
functie
De
sendResponse
parameter ziet er als volgt uit:() => void
- retourneert
booleaans | ongedefinieerd