runtime.onConnectExternal
Wird ausgelöst, wenn eine Erweiterung eine Verbindungsanfrage von einer anderen Erweiterung erhält.
Um eine Nachricht zu senden, die vom onConnectExternal-Listener empfangen wird, verwenden Sie runtime.connect(), indem Sie die ID des Empfängers im extensionId Parameter übergeben.
Der Listener erhält ein runtime.Port-Objekt, das er dann zum Senden und Empfangen von Nachrichten verwenden kann. Das Port-Objekt enthält auch eine sender-Eigenschaft, die ein runtime.MessageSender-Objekt ist und die der Empfänger verwenden kann, um die ID des Absenders zu überprüfen.
Syntax
browser.runtime.onConnectExternal.addListener(listener)
browser.runtime.onConnectExternal.removeListener(listener)
browser.runtime.onConnectExternal.hasListener(listener)
Ereignisse haben drei Funktionen:
addListener(listener)-
Fügt diesem Ereignis einen Listener hinzu.
removeListener(listener)-
Beendet das Lauschen auf dieses Ereignis. Das Argument
listenerist der zu entfernende Listener. hasListener(listener)-
Überprüft, ob ein
listenerfür dieses Ereignis registriert ist. Gibttruezurück, wenn es lauscht, andernfallsfalse.
addListener Syntax
>Parameter
function-
Die Funktion, die aufgerufen wird, wenn dieses Ereignis eintritt. Der Funktion wird dieses Argument übergeben:
port-
Ein
runtime.Port-Objekt, das das aktuelle Skript mit der anderen Erweiterung verbindet, mit der es sich verbindet.
Beispiele
In diesem Beispiel verbindet sich die Erweiterung Hansel mit der Erweiterung Gretel:
console.log("connecting to Gretel");
let myPort = browser.runtime.connect("gretel@mozilla.org");
myPort.onMessage.addListener((message) => {
console.log(`From Gretel: ${message.content}`);
});
browser.browserAction.onClicked.addListener(() => {
myPort.postMessage({ content: "Hello from Hansel" });
});
Gretel hört auf die Verbindung und überprüft, dass der Absender wirklich Hansel ist:
let portFromHansel;
browser.runtime.onConnectExternal.addListener((port) => {
console.log(port);
if (port.sender.id === "hansel@mozilla.org") {
console.log("connection attempt from Hansel");
portFromHansel = port;
portFromHansel.onMessage.addListener((message) => {
console.log(`From Hansel: ${message.content}`);
});
}
});
browser.browserAction.onClicked.addListener(() => {
portFromHansel.postMessage({ content: "Message from Gretel" });
});
Browser-Kompatibilität
Loading…
Hinweis:
Diese API basiert auf der chrome.runtime-API von Chromium. Diese Dokumentation stammt aus runtime.json im Chromium-Code.