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

js
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. Retourne true 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

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Firefox for Android
Safari on iOS
onConnectExternal

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
See implementation notes.

Exemples

Dans cet exemple, l'extension Hansel se connecte à l'extension Gretel :

js
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:

js
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.