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
listenerest l'écouteur à supprimer. hasListener(listener)-
Vérifie si un
listenerest enregistré pour cet événement. Retournetrues'il écoute,falsesinon.
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.Portconnectant le script en cours à l'autre extension à laquelle il se connecte.
Compatibilité des navigateurs
Chargement…
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.