chrome.runtime

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.

Voor de meeste leden van deze API zijn geen machtigingen vereist. Deze toestemming is nodig voor connectNative() , sendNativeMessage() en onNativeConnect .

In het volgende voorbeeld ziet u hoe u de machtiging "nativeMessaging" in het manifest declareert:

manifest.json:

{
  "name": "My extension",
  ...
  "permissions": [
    "nativeMessaging"
  ],
  ...
}

Concepten en gebruik

De Runtime API biedt methoden ter ondersteuning van een aantal gebieden 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 platformmetagegevens
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() ` .

Gedrag van uitgepakte extensie

Wanneer een uitgepakte extensie opnieuw wordt geladen, wordt dit behandeld als een update. Dit betekent dat de gebeurtenis chrome.runtime.onInstalled wordt geactiveerd met de reden "update" . Dit omvat ook wanneer de extensie opnieuw wordt geladen chrome.runtime.reload() .

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 vanuit een inhoudsscript naar de servicemedewerker 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 het door de ontwikkelaar gedefinieerde 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);
});

service-werker.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

Zie de Manifest V3 - Web Toegankelijke bronnen demo voor meer Runtime API-voorbeelden.

Soorten

ContextFilter

Chroom 114+

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

Chroom 114+

Enum

"TAB"
Specificeert het contexttype als een tabblad

"POP-UP"
Specificeert het contexttype als een extensiepop-upvenster

"ACHTERGROND"
Specificeert het contexttype als servicemedewerker.

"OFFSCREEN_DOCUMENT"
Specificeert het contexttype als een document buiten het scherm.

"ZIJ_PANEL"
Specificeert het contexttype als zijpaneel.

"ONTWIKKELAAR_TOOLS"
Specificeert het contexttype als ontwikkelaarstools.

ExtensionContext

Chroom 114+

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

Chroom 44+

De reden dat deze gebeurtenis wordt verzonden.

Enum

"installeren"
Specificeert de gebeurtenisreden als een installatie.

"update"
Specificeert de gebeurtenisreden als een extensie-update.

"chrome_update"
Specificeert de reden van de gebeurtenis als een Chrome-update.

"gedeelde_module_update"
Specificeert de reden van de gebeurtenis als een update van een gedeelde module.

OnRestartRequiredReason

Chroom 44+

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"
Specificeert de reden van de gebeurtenis als een update van de app.

"os_update"
Specificeert de gebeurtenisreden als een update van het besturingssysteem.

"periodiek"
Specificeert de gebeurtenisreden als een periodieke herstart van de app.

PlatformArch

Chroom 44+

De processorarchitectuur van de machine.

Enum

"arm"
Specificeert de processorarchitectuur als arm.

"arm64"
Specificeert de processorarchitectuur als arm64.

"x86-32"
Specificeert de processorarchitectuur als x86-32.

"x86-64"
Specificeert de processorarchitectuur als x86-64.

"mips"
Specificeert de processorarchitectuur als mips.

"mips64"
Specificeert de processorarchitectuur als mips64.

PlatformInfo

Een object dat informatie bevat over het huidige platform.

Eigenschappen

  • De processorarchitectuur van de machine.

  • nacl_arch

    De native clientarchitectuur. Dit kan op sommige platforms afwijken van de boog.

  • Het besturingssysteem waar Chrome op draait.

PlatformNaclArch

Chroom 44+

De native clientarchitectuur. Dit kan op sommige platforms afwijken van de boog.

Enum

"arm"
Specificeert de native clientarchitectuur als arm.

"x86-32"
Specificeert de native clientarchitectuur als x86-32.

"x86-64"
Specificeert de native clientarchitectuur als x86-64.

"mips"
Specificeert de native clientarchitectuur als mips.

"mips64"
Specificeert de native clientarchitectuur als mips64.

PlatformOs

Chroom 44+

Het besturingssysteem waar Chrome op draait.

Enum

"mac"
Specificeert het MacOS-besturingssysteem.

"winnen"
Specificeert het Windows-besturingssysteem.

"Android"
Specificeert het Android-besturingssysteem.

"kruis"
Specificeert het Chrome-besturingssysteem.

"linux"
Specificeert het Linux-besturingssysteem.

"openbsd"
Specificeert het OpenBSD-besturingssysteem.

"fuchsia"
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) => {...}

    • terugbellen

      functie

      De callback parameter ziet er als volgt uit:

      (port: Port) => void

  • 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) => {...}

    • terugbellen

      functie

      De callback parameter ziet er als volgt uit:

      (message: any, port: Port) => void

  • 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 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

Chroom 44+

Resultaat van de updatecontrole.

Enum

"gesmoord"
Geeft aan dat de statuscontrole is beperkt. Dit kan gebeuren na herhaalde controles binnen een korte tijd.

"no_update"
Geeft aan dat er geen updates beschikbaar zijn om te installeren.

"update_beschikbaar"
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 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()

Beloof alleen voorgrond
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+

    Beloften worden ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.

getContexts()

BeloofChrome 116+ MV3+
chrome.runtime.getContexts(
  filter: ContextFilter,
  callback?: function,
)

Haalt informatie op over actieve contexten die aan deze extensie zijn gekoppeld

Parameters

  • 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 []>

    Beloften worden ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.

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()

Beloof alleen voorgrond
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+

    Beloften worden ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.

getPlatformInfo()

Belofte
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

Retouren

  • Beloof < PlatformInfo >

    Chroom 99+

    Beloften worden ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.

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()

Belofte
chrome.runtime.openOptionsPage(
  callback?: function,
)

Open indien mogelijk de pagina met opties voor uw extensie.

Het precieze gedrag kan afhankelijk zijn van [options_ui](https://developer.chrome.com/docs/extensions/develop/ui/options-page#embedded_options) of [options_page](https://developer.chrome.com/docs/extensions/develop/ui/options-page#full_page) van uw manifest [options_page](https://developer.chrome.com/docs/extensions/develop/ui/options-page#full_page) sleutel, of 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+

    Beloften worden ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.

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()

Belofte
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

      • 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+

    Beloften worden ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.

restart()

chrome.runtime.restart()

Start het ChromeOS-apparaat opnieuw op wanneer de app in de kioskmodus draait. Anders is het geen operatie.

restartAfterDelay()

BeloofChrome 53+
chrome.runtime.restartAfterDelay(
  seconds: number,
  callback?: function,
)

Start het ChromeOS-apparaat opnieuw op als 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+

    Beloften worden ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.

sendMessage()

Belofte
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+

    Beloften worden ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.

sendNativeMessage()

Belofte
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+

    Beloften worden ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.

setUninstallURL()

Belofte
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+

    Beloften worden ondersteund in Manifest V3 en hoger, maar er zijn callbacks beschikbaar voor achterwaartse compatibiliteit. U kunt niet beide gebruiken bij dezelfde functieaanroep. De belofte wordt opgelost met hetzelfde type dat wordt doorgegeven aan de callback.

Evenementen

onBrowserUpdateAvailable

Afgekeurd
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

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

onConnectNative

Chroom 76+
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

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.

      • 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

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

Chroom 115+ MV3+
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

onUserScriptMessage

Chroom 115+ MV3+
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