Beschreibung
Mit der chrome.runtime
API können Sie den Service Worker abrufen, Details zum Manifest zurückgeben und auf Ereignisse im Lebenszyklus der Erweiterung warten und darauf reagieren. Mit dieser API können Sie auch den relativen Pfad von URLs in vollständig qualifizierte URLs umwandeln.
Übersicht
Die Runtime API bietet Methoden zur Unterstützung einer Reihe von Funktionen, die von Ihren Erweiterungen verwendet werden können:
- Nachrichtenübermittlung
- Ihre Erweiterung kann mit verschiedenen Kontexten innerhalb Ihrer Erweiterung und auch mit anderen Erweiterungen kommunizieren. Dazu werden die folgenden Methoden und Ereignisse verwendet: connect(), onConnect, onConnectExternal, sendMessage(), onMessage und onMessageExternal. Außerdem kann Ihre Erweiterung Nachrichten mithilfe von connectNative() und sendNativeMessage() an native Anwendungen auf dem Gerät des Nutzers übergeben.
- Auf Erweiterungs- und Plattformmetadaten zugreifen
- Mit diesen Methoden können Sie verschiedene spezifische Metadaten zur Erweiterung und zur Plattform abrufen. Zu den Methoden in dieser Kategorie gehören getManifest() und getPlatformInfo().
- Lebenszyklus und Optionen von Erweiterungen verwalten
- Mit diesen Eigenschaften können Sie einige Meta-Vorgänge für die Erweiterung ausführen und die Optionsseite anzeigen. Methoden und Ereignisse in dieser Kategorie sind unter anderem onInstalled, onStartup, openOptionsPage(), reload(), requestUpdateCheck() und setUninstallURL().
- Hilfsprogramme
- Diese Methoden bieten Funktionen wie die Konvertierung interner Ressourcendarstellungen in externe Formate. Zu den Methoden in dieser Kategorie gehört getURL().
- Kioskmodus-Dienstprogramme
- Diese Methoden sind nur unter ChromeOS verfügbar und dienen hauptsächlich zur Unterstützung von Kioskimplementierungen. Zu den Methoden in dieser Kategorie gehören restart und restartAfterDelay.
Berechtigungen
Für die meisten Methoden der Runtime API ist keine Berechtigung erforderlich, mit Ausnahme von sendNativeMessage und connectNative, für die die Berechtigung nativeMessaging
erforderlich ist.
Manifest
Das folgende Beispiel zeigt, wie die Berechtigung nativeMessaging
im Manifest deklariert wird:
manifest.json:
{
"name": "My extension",
...
"permissions": [
"nativeMessaging"
],
...
}
Anwendungsfälle
Bild auf einer Webseite einfügen
Damit eine Webseite auf ein Asset zugreifen kann, das auf einer anderen Domain gehostet wird, muss die vollständige URL der Ressource angegeben werden (z.B. <img src="https://example.com/logo.png">
). Das gilt auch für das Einbinden eines Erweiterungs-Assets auf einer Webseite. Die beiden Unterschiede bestehen darin, dass die Assets der Erweiterung als webzugängliche Ressourcen verfügbar gemacht werden müssen und dass in der Regel Inhaltsskripte für das Einfügen von Erweiterungs-Assets verantwortlich sind.
In diesem Beispiel fügt die Erweiterung logo.png
der Seite hinzu, in die das Inhaltsscript eingefügt wird. Dazu wird runtime.getURL()
verwendet, um eine vollständig qualifizierte URL zu erstellen. Zuerst muss das Asset jedoch im Manifest als webzugängliche Ressource deklariert werden.
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 = chrome.runtime.getURL('logo.png');
document.body.append(img);
}
Daten vom Service Worker an ein Content-Script senden
Es ist üblich, dass die Content-Scripts einer Erweiterung Daten benötigen, die von einem anderen Teil der Erweiterung, z. B. dem Service Worker, verwaltet werden. Ähnlich wie bei zwei Browserfenstern, die auf dieselbe Webseite geöffnet sind, können diese beiden Kontexte nicht direkt auf die Werte des jeweils anderen zugreifen. Stattdessen kann die Erweiterung Nachrichtenübermittlung verwenden, um die verschiedenen Kontexte zu koordinieren.
In diesem Beispiel benötigt das Content-Script einige Daten vom Service Worker der Erweiterung, um die Benutzeroberfläche zu initialisieren. Dazu wird eine get-user-data
-Nachricht an den Service Worker gesendet, der mit einer Kopie der Nutzerinformationen antwortet.
content.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);
});
background.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);
}
});
Feedback zur Deinstallation einholen
Viele Erweiterungen verwenden Umfragen nach der Deinstallation, um herauszufinden, wie die Erweiterung ihren Nutzern besser dienen und die Nutzerbindung verbessern kann. Das folgende Beispiel zeigt, wie Sie diese Funktion hinzufügen.
background.js:
chrome.runtime.onInstalled.addListener(details => {
if (details.reason === chrome.runtime.OnInstalledReason.INSTALL) {
chrome.runtime.setUninstallURL('https://example.com/extension-survey');
}
});
Beispiele für Erweiterungen
Weitere Beispiele für die Runtime API finden Sie in der Manifest V3-Demo für webzugängliche Ressourcen.
Typen
ContextFilter
Ein Filter, der mit bestimmten Erweiterungskontexten abgeglichen wird. Übereinstimmende Kontexte müssen allen angegebenen Filtern entsprechen. Jeder Filter, der nicht angegeben ist, entspricht allen verfügbaren Kontexten. Ein Filter mit dem Wert `{}` stimmt also mit allen verfügbaren Kontexten überein.
Attribute
-
contextIds
string[] optional
-
contextTypes
ContextType[] optional
-
documentIds
string[] optional
-
documentOrigins
string[] optional
-
documentUrls
string[] optional
-
frameIds
number[] optional
-
Inkognito
boolean optional
-
tabIds
number[] optional
-
windowIds
number[] optional
ContextType
Enum
„TAB“
Gibt den Kontexttyp als Tab an
„POPUP“
Gibt den Kontexttyp als Erweiterungs-Pop-up-Fenster an
„BACKGROUND“
Gibt den Kontexttyp als Service Worker an.
„OFFSCREEN_DOCUMENT“
Gibt den Kontexttyp als Offscreen-Dokument an.
"SIDE_PANEL"
Gibt den Kontexttyp als Seitenleiste an.
"DEVELOPER_TOOLS"
Gibt den Kontexttyp als Entwicklertools an.
ExtensionContext
Ein Kontext, in dem Erweiterungsinhalte gehostet werden.
Attribute
-
Kontext-ID
String
Eine eindeutige Kennung für diesen Kontext
-
contextType
Der Kontexttyp, dem dies entspricht.
-
documentId
String optional
Eine UUID für das Dokument, das diesem Kontext zugeordnet ist, oder „undefined“, wenn dieser Kontext nicht in einem Dokument gehostet wird.
-
documentOrigin
String optional
Der Ursprung des Dokuments, das mit diesem Kontext verknüpft ist, oder „undefined“, wenn der Kontext nicht in einem Dokument gehostet wird.
-
documentUrl
String optional
Die URL des Dokuments, das mit diesem Kontext verknüpft ist, oder „undefined“, wenn der Kontext nicht in einem Dokument gehostet wird.
-
frameId
Zahl
Die ID des Frames für diesen Kontext oder -1, wenn dieser Kontext nicht in einem Frame gehostet wird.
-
Inkognito
boolean
Gibt an, ob der Kontext mit einem Inkognitoprofil verknüpft ist.
-
tabId
Zahl
Die ID des Tabs für diesen Kontext oder -1, wenn dieser Kontext nicht auf einem Tab gehostet wird.
-
windowId
Zahl
Die ID des Fensters für diesen Kontext oder -1, wenn dieser Kontext nicht in einem Fenster gehostet wird.
MessageSender
Ein Objekt mit Informationen zum Skriptkontext, über den eine Nachricht oder Anfrage gesendet wurde.
Attribute
-
documentId
String optional
Chrome 106 und höherEine UUID des Dokuments, das die Verbindung geöffnet hat.
-
documentLifecycle
String optional
Chrome 106 und höherDer Lebenszyklus des Dokuments, mit dem die Verbindung geöffnet wurde, zum Zeitpunkt der Erstellung des Ports. Der Lebenszyklusstatus des Dokuments kann sich seit der Erstellung des Ports geändert haben.
-
frameId
number optional
Der Frame, der die Verbindung geöffnet hat. 0 für Frames der obersten Ebene, positiv für untergeordnete Frames. Wird nur festgelegt, wenn
tab
festgelegt ist. -
id
String optional
Die ID der Erweiterung, die die Verbindung geöffnet hat (falls vorhanden).
-
nativeApplication
String optional
Chrome 74 und höherDer Name der nativen Anwendung, die die Verbindung geöffnet hat, falls vorhanden.
-
origin
String optional
Chrome 80 und höherDer Ursprung der Seite oder des Frames, über die die Verbindung geöffnet wurde. Sie kann von der URL-Eigenschaft abweichen (z.B. „about:blank“) oder undurchsichtig sein (z.B. Sandboxed-iFrames). Das ist nützlich, um festzustellen, ob der Ursprung vertrauenswürdig ist, wenn wir das nicht sofort anhand der URL erkennen können.
-
Tabulatortaste
Tab optional
Die
tabs.Tab
, die die Verbindung geöffnet hat (falls vorhanden). Diese Property ist nur vorhanden, wenn die Verbindung über einen Tab (einschließlich Content-Scripts) geöffnet wurde, und nur, wenn der Empfänger eine Erweiterung und keine App ist. -
tlsChannelId
String optional
Die TLS-Channel-ID der Seite oder des Frames, über die die Verbindung geöffnet wurde, sofern von der Erweiterung angefordert und verfügbar.
-
URL
String optional
Die URL der Seite oder des Frames, über die die Verbindung geöffnet wurde. Wenn sich der Absender in einem iFrame befindet, wird die URL des iFrames und nicht die URL der Seite, auf der er gehostet wird, zurückgegeben.
OnInstalledReason
Der Grund, warum dieses Ereignis gesendet wird.
Enum
„install“
Gibt den Ereignisgrund als Installation an.
„update“
Gibt den Ereignisgrund als Erweiterungsaktualisierung an.
"chrome_update"
Gibt den Grund für das Ereignis als Chrome-Update an.
"shared_module_update"
Gibt den Grund für das Ereignis als Aktualisierung eines freigegebenen Moduls an.
OnRestartRequiredReason
Der Grund, warum das Ereignis gesendet wird. „app_update“ wird verwendet, wenn der Neustart erforderlich ist, weil die Anwendung auf eine neuere Version aktualisiert wird. „os_update“ wird verwendet, wenn der Neustart erforderlich ist, weil der Browser oder das Betriebssystem auf eine neuere Version aktualisiert wurde. „periodic“ wird verwendet, wenn das System länger als die in der Unternehmensrichtlinie festgelegte zulässige Betriebszeit ausgeführt wird.
Enum
„app_update“
Gibt den Ereignisgrund als Update der App an.
„os_update“
Gibt den Ereignisgrund als Update des Betriebssystems an.
„periodic“
Gibt den Ereignisgrund als regelmäßigen Neustart der App an.
PlatformArch
Die Prozessorarchitektur der Maschine.
Enum
„arm“
Gibt die Prozessorarchitektur als „arm“ an.
arm64
Gibt die Prozessorarchitektur als arm64 an.
„x86-32“
Gibt die Prozessorarchitektur als x86-32 an.
„x86-64“
Gibt die Prozessorarchitektur als x86-64 an.
„mips“
Gibt die Prozessorarchitektur als „mips“ an.
„mips64“
Gibt die Prozessorarchitektur als „mips64“ an.
"riscv64"
Gibt die Prozessorarchitektur als „riscv64“ an.
PlatformInfo
Ein Objekt mit Informationen zur aktuellen Plattform.
Attribute
-
Bogen
Die Prozessorarchitektur der Maschine.
-
nacl_arch
PlatformNaclArch optional
Die Architektur des nativen Clients. Dies kann sich auf einigen Plattformen von „arch“ unterscheiden.
-
os
Das Betriebssystem, auf dem Chrome ausgeführt wird.
PlatformNaclArch
Die Architektur des nativen Clients. Dies kann sich auf einigen Plattformen von „arch“ unterscheiden.
Enum
arm
Gibt die native Clientarchitektur als „arm“ an.
"x86-32"
Gibt die native Clientarchitektur als x86-32 an.
„x86-64“
Gibt die native Clientarchitektur als x86-64 an.
"mips"
Gibt die native Clientarchitektur als „mips“ an.
„mips64“
Gibt die native Clientarchitektur als „mips64“ an.
PlatformOs
Das Betriebssystem, auf dem Chrome ausgeführt wird.
Enum
„mac“
Gibt das MacOS-Betriebssystem an.
„win“
Gibt das Windows-Betriebssystem an.
android
Gibt das Android-Betriebssystem an.
"cros"
Gibt das Chrome-Betriebssystem an.
„linux“
Gibt das Linux-Betriebssystem an.
openbsd
Gibt das OpenBSD-Betriebssystem an.
Port
Ein Objekt, das die bidirektionale Kommunikation mit anderen Seiten ermöglicht. Weitere Informationen finden Sie unter Lang andauernde Verbindungen.
Attribute
-
name
String
Der Name des Ports, wie im Aufruf von
runtime.connect
angegeben. -
onDisconnect
Event<functionvoidvoid>
Wird ausgelöst, wenn die Verbindung des Ports zum anderen Ende bzw. zu den anderen Enden getrennt wird.
runtime.lastError
kann festgelegt werden, wenn der Anschluss aufgrund eines Fehlers getrennt wurde. Wenn der Port über disconnect geschlossen wird, wird dieses Ereignis nur am anderen Ende ausgelöst. Dieses Ereignis wird höchstens einmal ausgelöst (siehe auch Port-Lebensdauer).Die
onDisconnect.addListener
-Funktion sieht so aus:(callback: function) => {...}
-
onMessage
Event<functionvoidvoid>
Dieses Ereignis wird ausgelöst, wenn postMessage vom anderen Ende des Ports aufgerufen wird.
Die
onMessage.addListener
-Funktion sieht so aus:(callback: function) => {...}
-
Absender
MessageSender optional
Dieses Attribut ist nur für Ports vorhanden, die an die Listener onConnect, onConnectExternal und onConnectNative übergeben werden.
-
Verknüpfung aufheben
void
Trennen Sie den Port sofort. Wenn
disconnect()
für einen bereits getrennten Port aufgerufen wird, hat das keine Auswirkungen. Wenn ein Port getrennt wird, werden keine neuen Ereignisse an diesen Port gesendet.Die
disconnect
-Funktion sieht so aus:() => {...}
-
postMessage
void
Senden Sie eine Nachricht an das andere Ende des Ports. Wenn der Port getrennt wird, wird ein Fehler ausgegeben.
Die
postMessage
-Funktion sieht so aus:(message: any) => {...}
-
Nachricht
beliebig
Chrome 52 und höherDie zu sendende Nachricht. Dieses Objekt sollte in JSON konvertierbar sein.
-
RequestUpdateCheckStatus
Ergebnis der Update-Prüfung.
Enum
„throttled“
Gibt an, dass die Statusprüfung gedrosselt wurde. Dies kann nach wiederholten Prüfungen innerhalb kurzer Zeit auftreten.
„no_update“
Gibt an, dass keine verfügbaren Updates installiert werden können.
„update_available“
Gibt an, dass ein Update zur Installation verfügbar ist.
Attribute
id
Die ID der Erweiterung/App.
Typ
String
lastError
Wird mit einer Fehlermeldung gefüllt, wenn der Aufruf einer API-Funktion fehlschlägt. Andernfalls ist der Wert „undefined“. Sie ist nur im Bereich des Callbacks dieser Funktion definiert. Wenn ein Fehler auftritt, aber nicht auf runtime.lastError
innerhalb des Rückrufs zugegriffen wird, wird eine Meldung in der Konsole protokolliert, in der die API-Funktion aufgeführt ist, die den Fehler verursacht hat. Bei API-Funktionen, die Promises zurückgeben, wird diese Eigenschaft nicht festgelegt.
Typ
Objekt
Attribute
-
Nachricht
String optional
Details zum aufgetretenen Fehler.
Methoden
connect()
chrome.runtime.connect(
extensionId?: string,
connectInfo?: object,
): Port
Es wird versucht, Listener innerhalb einer Erweiterung (z. B. der Hintergrundseite) oder anderer Erweiterungen/Apps zu verbinden. Das ist nützlich für Inhaltsscripts, die eine Verbindung zu ihren Erweiterungsprozessen herstellen, für die Kommunikation zwischen Apps/Erweiterungen und für Web Messaging. Es wird keine Verbindung zu Listenern in einem Content-Script hergestellt. Erweiterungen können über tabs.connect
eine Verbindung zu Inhaltsskripten herstellen, die in Tabs eingebettet sind.
Parameter
-
extensionId
String optional
Die ID der Erweiterung, mit der eine Verbindung hergestellt werden soll. Wird kein Wert angegeben, wird versucht, eine Verbindung mit Ihrer eigenen Erweiterung herzustellen. Erforderlich, wenn Nachrichten von einer Webseite für Web Messaging gesendet werden.
-
connectInfo
object optional
-
includeTlsChannelId
boolean optional
Gibt an, ob die TLS-Channel-ID an onConnectExternal für Prozesse übergeben wird, die auf das Verbindungsereignis warten.
-
name
String optional
Wird an „onConnect“ für Prozesse übergeben, die auf das Verbindungsereignis warten.
-
Ausgabe
-
Port, über den Nachrichten gesendet und empfangen werden können. Das onDisconnect-Ereignis des Ports wird ausgelöst, wenn die Erweiterung nicht vorhanden ist.
connectNative()
chrome.runtime.connectNative(
application: string,
): Port
Stellt eine Verbindung zu einer nativen Anwendung auf dem Hostcomputer her. Für diese Methode ist die Berechtigung "nativeMessaging"
erforderlich. Weitere Informationen finden Sie unter Native Messaging.
Parameter
-
Anwendung
String
Der Name der registrierten Anwendung, zu der eine Verbindung hergestellt werden soll.
Ausgabe
-
Port, über den Nachrichten mit der Anwendung gesendet und empfangen werden können
getBackgroundPage()
chrome.runtime.getBackgroundPage(
callback?: function,
): Promise<Window | undefined>
Hintergrundseiten gibt es in MV3-Erweiterungen nicht.
Ruft das JavaScript-Objekt „window“ für die Hintergrundseite ab, die in der aktuellen Erweiterung/App ausgeführt wird. Wenn die Hintergrundseite eine Ereignisseite ist, wird sie vom System geladen, bevor der Callback aufgerufen wird. Wenn keine Hintergrundseite vorhanden ist, wird ein Fehler ausgegeben.
Parameter
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:(backgroundPage?: Window) => void
-
backgroundPage
Fenster optional
Das JavaScript-Objekt „window“ für die Hintergrundseite.
-
Ausgabe
-
Promise<Window | undefined>
Chrome 99 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
getManifest()
chrome.runtime.getManifest(): object
Gibt Details zur App oder Erweiterung aus dem Manifest zurück. Das zurückgegebene Objekt ist eine Serialisierung der vollständigen Manifest-Datei.
Ausgabe
-
Objekt
Die Manifestdetails.
getPackageDirectoryEntry()
chrome.runtime.getPackageDirectoryEntry(
callback?: function,
): Promise<DirectoryEntry>
Gibt einen DirectoryEntry für das Paketverzeichnis zurück.
Parameter
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:(directoryEntry: DirectoryEntry) => void
-
directoryEntry
DirectoryEntry
-
Ausgabe
-
Promise<DirectoryEntry>
Chrome 122 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
getPlatformInfo()
chrome.runtime.getPlatformInfo(
callback?: function,
): Promise<PlatformInfo>
Gibt Informationen zur aktuellen Plattform zurück.
Parameter
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:(platformInfo: PlatformInfo) => void
-
platformInfo
-
Ausgabe
-
Promise<PlatformInfo>
Chrome 99 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
getURL()
chrome.runtime.getURL(
path: string,
): string
Konvertiert einen relativen Pfad in einem Installationsverzeichnis für Apps/Erweiterungen in eine vollständig qualifizierte URL.
Parameter
-
Pfad
String
Ein Pfad zu einer Ressource in einer App/Erweiterung, der relativ zum Installationsverzeichnis angegeben wird.
Ausgabe
-
String
Die vollständig qualifizierte URL der Ressource.
openOptionsPage()
chrome.runtime.openOptionsPage(
callback?: function,
): Promise<void>
Öffnen Sie die Optionenseite der Erweiterung, falls möglich.
Das genaue Verhalten kann vom options_ui
- oder options_page
-Schlüssel Ihres Manifests oder davon abhängen, was Chrome zu diesem Zeitpunkt unterstützt. Die Seite kann beispielsweise in einem neuen Tab, in chrome://extensions, in einer App oder auf einer geöffneten Optionsseite geöffnet werden. Die Seite des Aufrufers wird dadurch nie neu geladen.
Wenn für Ihre Erweiterung keine Optionsseite deklariert ist oder Chrome aus einem anderen Grund keine erstellen konnte, wird im Callback lastError
festgelegt.
Parameter
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:() => void
Ausgabe
-
Promise<void>
Chrome 99 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
reload()
chrome.runtime.reload(): void
Lädt die App oder Erweiterung neu. Diese Methode wird im Kioskmodus nicht unterstützt. Verwenden Sie für den Kioskmodus die Methode „chrome.runtime.restart()“.
requestUpdateCheck()
chrome.runtime.requestUpdateCheck(
callback?: function,
): Promise<object>
Fordert eine sofortige Überprüfung auf Updates für diese App/Erweiterung an.
Wichtig: Die meisten Erweiterungen/Apps sollten diese Methode nicht verwenden, da Chrome bereits alle paar Stunden automatische Prüfungen durchführt und Sie auf das runtime.onUpdateAvailable
-Ereignis warten können, ohne „requestUpdateCheck“ aufrufen zu müssen.
Diese Methode sollte nur in sehr begrenzten Fällen aufgerufen werden, z. B. wenn Ihre Erweiterung mit einem Backend-Dienst kommuniziert und der Backend-Dienst festgestellt hat, dass die Client-Erweiterungsversion sehr veraltet ist, und Sie einen Nutzer auffordern möchten, die Erweiterung zu aktualisieren. Die meisten anderen Verwendungszwecke von requestUpdateCheck, z. B. der bedingungslose Aufruf basierend auf einem sich wiederholenden Timer, führen wahrscheinlich nur zu einer Verschwendung von Client-, Netzwerk- und Serverressourcen.
Hinweis: Wenn diese Funktion mit einem Callback aufgerufen wird, gibt sie kein Objekt zurück, sondern die beiden Eigenschaften als separate Argumente, die an den Callback übergeben werden.
Parameter
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:(result: object) => void
-
Ergebnis
Objekt
Chrome 109 und höherDas RequestUpdateCheckResult-Objekt enthält den Status der Updateprüfung und alle Details des Ergebnisses, wenn ein Update verfügbar ist.
-
Status
Ergebnis der Update-Prüfung.
-
Version
String optional
Wenn ein Update verfügbar ist, enthält dieser Parameter die Version des verfügbaren Updates.
-
-
Ausgabe
-
Promise<object>
Chrome 109 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
restart()
chrome.runtime.restart(): void
Starten Sie das ChromeOS-Gerät neu, wenn die App im Kioskmodus ausgeführt wird. Andernfalls wird nichts unternommen.
restartAfterDelay()
chrome.runtime.restartAfterDelay(
seconds: number,
callback?: function,
): Promise<void>
Das ChromeOS-Gerät wird neu gestartet, wenn die App nach der angegebenen Anzahl von Sekunden im Kioskmodus ausgeführt wird. Wenn der Befehl vor Ablauf der Zeit noch einmal aufgerufen wird, wird der Neustart verzögert. Wenn die Funktion mit dem Wert -1 aufgerufen wird, wird der Neustart abgebrochen. In anderen Modi als dem Kioskmodus hat sie keine Auswirkungen. Sie darf nur wiederholt von der ersten Erweiterung aufgerufen werden, um diese API aufzurufen.
Parameter
-
Sekunden
Zahl
Wartezeit in Sekunden vor dem Neustart des Geräts oder -1, um einen geplanten Neustart abzubrechen.
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:() => void
Ausgabe
-
Promise<void>
Chrome 99 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
sendMessage()
chrome.runtime.sendMessage(
extensionId?: string,
message: any,
options?: object,
callback?: function,
): Promise<any>
Sendet eine einzelne Nachricht an Event-Listener in Ihrer Erweiterung oder einer anderen Erweiterung/App. Ähnlich wie runtime.connect
, sendet aber nur eine einzelne Nachricht mit einer optionalen Antwort. Wenn die Nachricht an Ihre Erweiterung gesendet wird, wird das Ereignis runtime.onMessage
in jedem Frame Ihrer Erweiterung (außer im Frame des Absenders) ausgelöst. Bei einer anderen Erweiterung wird runtime.onMessageExternal
ausgelöst. Hinweis: Erweiterungen können mit dieser Methode keine Nachrichten an Content-Scripts senden. Verwenden Sie tabs.sendMessage
, um Nachrichten an Inhaltsskripts zu senden.
Parameter
-
extensionId
String optional
Die ID der Erweiterung, an die die Nachricht gesendet werden soll. Wenn dieser Parameter fehlt, wird die Nachricht an Ihre eigene Erweiterung/App gesendet. Er ist erforderlich, wenn Nachrichten von einer Webseite für Web Messaging gesendet werden.
-
Nachricht
beliebig
Die zu sendende Nachricht. Diese Nachricht sollte ein JSON-fähiges Objekt sein.
-
Optionen
object optional
-
includeTlsChannelId
boolean optional
Gibt an, ob die TLS-Channel-ID an onMessageExternal für Prozesse übergeben wird, die auf das Verbindungsereignis warten.
-
-
callback
Funktion optional
Chrome 99 und höherDer Parameter
callback
sieht so aus:(response: any) => void
-
Antwort
beliebig
Das JSON-Antwortobjekt, das vom Handler der Nachricht gesendet wird. Wenn beim Herstellen einer Verbindung zur Erweiterung ein Fehler auftritt, wird der Callback ohne Argumente aufgerufen und
runtime.lastError
wird auf die Fehlermeldung gesetzt.
-
Ausgabe
-
Promise<any>
Chrome 99 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
sendNativeMessage()
chrome.runtime.sendNativeMessage(
application: string,
message: object,
callback?: function,
): Promise<any>
Eine einzelne Nachricht an eine native Anwendung senden Für diese Methode ist die Berechtigung "nativeMessaging"
erforderlich.
Parameter
-
Anwendung
String
Der Name des Hosts für natives Messaging.
-
Nachricht
Objekt
Die Nachricht, die an den nativen Messaging-Host übergeben wird.
-
callback
Funktion optional
Chrome 99 und höherDer Parameter
callback
sieht so aus:(response: any) => void
-
Antwort
beliebig
Die Antwortnachricht, die vom Host für natives Messaging gesendet wird. Wenn beim Herstellen einer Verbindung zum nativen Messaging-Host ein Fehler auftritt, wird der Callback ohne Argumente aufgerufen und
runtime.lastError
wird auf die Fehlermeldung gesetzt.
-
Ausgabe
-
Promise<any>
Chrome 99 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
setUninstallURL()
chrome.runtime.setUninstallURL(
url: string,
callback?: function,
): Promise<void>
Legt die URL fest, die beim Deinstallieren aufgerufen werden soll. Das kann zum Bereinigen serverseitiger Daten, für Analysen und zum Implementieren von Umfragen verwendet werden. Maximal 1.023 Zeichen.
Parameter
-
URL
String
URL, die nach der Deinstallation der Erweiterung geöffnet werden soll. Diese URL muss das Schema „http:“ oder „https:“ haben. Legen Sie einen leeren String fest, damit beim Deinstallieren kein neuer Tab geöffnet wird.
-
callback
Funktion optional
Chrome 45 und höherDer Parameter
callback
sieht so aus:() => void
Ausgabe
-
Promise<void>
Chrome 99 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
Ereignisse
onBrowserUpdateAvailable
chrome.runtime.onBrowserUpdateAvailable.addListener(
callback: function,
)
Verwenden Sie runtime.onRestartRequired
.
Wird ausgelöst, wenn ein Chrome-Update verfügbar ist, aber nicht sofort installiert wird, da ein Neustart des Browsers erforderlich ist.
Parameter
-
callback
Funktion
Der Parameter
callback
sieht so aus:() => void
onConnect
chrome.runtime.onConnect.addListener(
callback: function,
)
Wird ausgelöst, wenn eine Verbindung von einem Erweiterungsprozess oder einem Inhaltsscript (durch runtime.connect
) hergestellt wird.
onConnectExternal
chrome.runtime.onConnectExternal.addListener(
callback: function,
)
Wird ausgelöst, wenn eine Verbindung von einer anderen Erweiterung (über runtime.connect
) oder von einer extern verbindbaren Website hergestellt wird.
onConnectNative
chrome.runtime.onConnectNative.addListener(
callback: function,
)
Wird ausgelöst, wenn eine Verbindung von einer nativen Anwendung hergestellt wird. Für dieses Ereignis ist die Berechtigung "nativeMessaging"
erforderlich. Sie wird nur unter ChromeOS unterstützt.
onInstalled
chrome.runtime.onInstalled.addListener(
callback: function,
)
Wird ausgelöst, wenn die Erweiterung zum ersten Mal installiert wird, wenn die Erweiterung auf eine neue Version aktualisiert wird und wenn Chrome auf eine neue Version aktualisiert wird.
Parameter
-
callback
Funktion
Der Parameter
callback
sieht so aus:(details: object) => void
-
Details
Objekt
-
id
String optional
Gibt die ID der importierten Erweiterung des freigegebenen Moduls an, die aktualisiert wurde. Dies ist nur vorhanden, wenn „reason“ „shared_module_update“ ist.
-
previousVersion
String optional
Gibt die vorherige Version der Erweiterung an, die gerade aktualisiert wurde. Dies ist nur vorhanden, wenn „reason“ „update“ ist.
-
reason
Der Grund, warum dieses Ereignis gesendet wird.
-
-
onMessage
chrome.runtime.onMessage.addListener(
callback: function,
)
Wird ausgelöst, wenn eine Nachricht entweder von einem Erweiterungsprozess (durch runtime.sendMessage
) oder von einem Inhaltsscript (durch tabs.sendMessage
) gesendet wird.
Parameter
-
callback
Funktion
Der Parameter
callback
sieht so aus:(message: any, sender: MessageSender, sendResponse: function) => boolean | undefined
-
Nachricht
beliebig
-
Absender
-
sendResponse
Funktion
Der Parameter
sendResponse
sieht so aus:() => void
-
Gibt zurück
boolean | undefined
-
onMessageExternal
chrome.runtime.onMessageExternal.addListener(
callback: function,
)
Wird ausgelöst, wenn eine Nachricht von einer anderen Erweiterung gesendet wird (durch runtime.sendMessage
). Kann nicht in einem Content-Script verwendet werden.
Parameter
-
callback
Funktion
Der Parameter
callback
sieht so aus:(message: any, sender: MessageSender, sendResponse: function) => boolean | undefined
-
Nachricht
beliebig
-
Absender
-
sendResponse
Funktion
Der Parameter
sendResponse
sieht so aus:() => void
-
Gibt zurück
boolean | undefined
-
onRestartRequired
chrome.runtime.onRestartRequired.addListener(
callback: function,
)
Wird ausgelöst, wenn eine App oder das Gerät, auf dem sie ausgeführt wird, neu gestartet werden muss. Die App sollte alle ihre Fenster zum frühestmöglichen Zeitpunkt schließen, damit der Neustart erfolgen kann. Wenn die App nichts tut, wird nach Ablauf einer 24-stündigen Kulanzfrist ein Neustart erzwungen. Derzeit wird dieses Ereignis nur für ChromeOS-Kiosk-Apps ausgelöst.
Parameter
-
callback
Funktion
Der Parameter
callback
sieht so aus:(reason: OnRestartRequiredReason) => void
-
reason
-
onStartup
chrome.runtime.onStartup.addListener(
callback: function,
)
Wird ausgelöst, wenn ein Profil, auf dem diese Erweiterung installiert ist, zum ersten Mal gestartet wird. Dieses Ereignis wird nicht ausgelöst, wenn ein Inkognitoprofil gestartet wird, auch wenn diese Erweiterung im Inkognitomodus „Geteilt“ ausgeführt wird.
Parameter
-
callback
Funktion
Der Parameter
callback
sieht so aus:() => void
onSuspend
chrome.runtime.onSuspend.addListener(
callback: function,
)
Wird an die Ereignisseite gesendet, kurz bevor sie entladen wird. So hat die Erweiterung die Möglichkeit, einige Bereinigungen vorzunehmen. Da die Seite entladen wird, werden alle asynchronen Vorgänge, die während der Verarbeitung dieses Ereignisses gestartet werden, möglicherweise nicht abgeschlossen. Wenn vor dem Entladen der Ereignisseite weitere Aktivitäten stattfinden, wird das Ereignis „onSuspendCanceled“ gesendet und die Seite wird nicht entladen.
Parameter
-
callback
Funktion
Der Parameter
callback
sieht so aus:() => void
onSuspendCanceled
chrome.runtime.onSuspendCanceled.addListener(
callback: function,
)
Wird nach onSuspend gesendet, um anzugeben, dass die App doch nicht entladen wird.
Parameter
-
callback
Funktion
Der Parameter
callback
sieht so aus:() => void
onUpdateAvailable
chrome.runtime.onUpdateAvailable.addListener(
callback: function,
)
Wird ausgelöst, wenn ein Update verfügbar ist, aber nicht sofort installiert wird, weil die App gerade ausgeführt wird. Wenn Sie nichts unternehmen, wird das Update beim nächsten Entladen der Hintergrundseite installiert. Wenn Sie möchten, dass es früher installiert wird, können Sie explizit chrome.runtime.reload() aufrufen. Wenn Ihre Erweiterung eine persistente Hintergrundseite verwendet, wird die Hintergrundseite natürlich nie entladen. Wenn Sie also nicht als Reaktion auf dieses Ereignis manuell chrome.runtime.reload() aufrufen, wird das Update erst beim nächsten Neustart von Chrome installiert. Wenn keine Handler auf dieses Ereignis warten und Ihre Erweiterung eine persistente Hintergrundseite hat, verhält sie sich so, als ob chrome.runtime.reload() als Reaktion auf dieses Ereignis aufgerufen wird.
Parameter
-
callback
Funktion
Der Parameter
callback
sieht so aus:(details: object) => void
-
Details
Objekt
-
Version
String
Die Versionsnummer des verfügbaren Updates.
-
-