runtime.onConnectExternal
Lancé lorsqu'une extension reçoit une demande de connexion d'une extension différente.
Pour envoyer un message qui sera reçu par le programme d'écoute onConnectExternal
, utilisez runtime.connect()
, en transmettant l'ID du destinataire dans le paramètre extensionId
.
L'écouteur reçoit un objet runtime.Port
qu'il peut ensuite utiliser pour envoyer et recevoir des messages. L'objet Port
contient également une propriétésender
, qui est un objet runtime.MessageSender
, et que le destinataire peut utiliser pour vérifier l'ID de l'expéditeur.
Syntaxe
browser.runtime.onConnectExternal.addListener(listener);
browser.runtime.onConnectExternal.removeListener(listener);
browser.runtime.onConnectExternal.hasListener(listener);
Les événements ont trois fonctions :
addListener(callback)
-
Ajoute un écouteur à cet événement.
removeListener(listener)
-
Arrêtez d'écouter cet événement. L'argument
listener
est l'écouteur à supprimer. hasListener(listener)
-
Vérifie si un
listener
est enregistré pour cet événement. Retournetrue
s'il écoute,false
sinon.
Syntaxe addListener
Paramètres
fonction
-
Une fonction de rappel qui sera appelée lorsque cet événement se produira. La fonction recevra les arguments suivants :
port
-
Un objet
runtime.Port
connectant le script en cours à l'autre extension à laquelle il se connecte.
Compatibilité des navigateurs
BCD tables only load in the browser
Exemples
Dans cet exemple, l'extension Hansel se connecte à l'extension Gretel :
console.log("connecting to Gretel");
var 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 écoute la connexion et vérifie que l'expéditeur est vraiment Hansel:
var 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" });
});
Note :
Cette API est basée sur l'API Chromium chrome.runtime
. Cette documentation est dérivée de runtime.json
dans le code de Chromium code.
Les données de compatibilité relatives à Microsoft Edge sont fournies par Microsoft Corporation et incluses ici sous la licence Creative Commons Attribution 3.0 pour les États-Unis.