--- title: runtime.sendNativeMessage() slug: Mozilla/Add-ons/WebExtensions/API/runtime/sendNativeMessage tags: - API - Add-ons - Extensions - Method - Non-standard - Reference - WebExtensions - runtime - sendNativeMessage translation_of: Mozilla/Add-ons/WebExtensions/API/runtime/sendNativeMessage ---
{{AddonSidebar()}}

Envoie un seul message d'une extension à une application native.

Cela prend deux paramètres obligatoires : le nom de l'application native et un objet JSON qui est le message à envoyer. Le navigateur lancera l'application native et délivrera le message.

C'est une fonction asynchrone qui renvoie une Promise. The first message sent by the native application is treated as a response to the sendNativeMessage() call, and the promise will be fulfilled with this message as a parameter. Note that you can't use {{WebExtAPIRef("runtime.onMessage")}} to get responses from the application: you must use the callback function instead.

Une nouvelle instance de l'application est lancée pour appel à  runtime.sendNativeMessage(). Le navigateur terminera l'application native après avoir reçu une réponse. Pour mettre fin à une application native, le navigateur ferme le canal, donne au processus quelques secondes pour quitter normalement, puis le tue s'il ne s'est pas arrêté.

Pour plus d'informations, voir Native messaging.

Syntaxe

var sending = browser.runtime.sendNativeMessage(
  application,             // string
  message                  // object
)

Paramètres

application
string. Le nom de l'application native. Cela doit correspondre à la propriété "name" dans le fichier manifest de l'application native.
message
object. Un objet JSON qui sera envoyé à l'application native.

Valeur retournée

Une Promise. Si l'expéditeur a envoyé une réponse, celle-ci sera remplie avec la réponse en tant qu'objet JSON. Sinon, il sera rempli sans arguments. Si une erreur survient lors de la connexion à l'application native, la promesse sera rejetée avec un message d'erreur.

Compatibilité du navigateur

{{Compat("webextensions.api.runtime.sendNativeMessage")}}

Exemples

Voici un script d'arrière-plan qui envoie un message "ping" à l'application "ping_pong" et enregistre la réponse, chaque fois que l'utilisateur clique sur l'action du navigateur :

function onResponse(response) {
  console.log(`Received ${response}`);
}

function onError(error) {
  console.log(`Error: ${error}`);
}

/*
On a click on the browser action, send the app a message.
*/
browser.browserAction.onClicked.addListener(() => {
  console.log("Sending:  ping");
  var sending = browser.runtime.sendNativeMessage("ping_pong", "ping");
  sending.then(onResponse, onError);
});

{{WebExtExamples}}

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.