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. 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é du navigateur

Update compatibility data on GitHub
OrdinateurMobile
ChromeEdgeFirefoxOperaFirefox pour Android
Support simpleChrome Support complet 26Edge Aucun support NonFirefox Support complet 54Opera Support complet 15Firefox Android Support complet 54

Légende

Support complet  
Support complet
Aucun support  
Aucun support

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"});
});

Remerciements :

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.

Étiquettes et contributeurs liés au document

Contributeurs à cette page : hellosct1
Dernière mise à jour par : hellosct1,