runtime.connectNative()

Stellt eine Verbindung der Erweiterung zu einer nativen Anwendung auf dem Computer des Benutzers her. Dies erfordert den Namen einer nativen Anwendung als Parameter. Es startet die native Anwendung und gibt ein runtime.Port-Objekt an den Aufrufer zurück. Der Aufrufer kann dann den Port verwenden, um Nachrichten mit der nativen Anwendung über Port.postMessage() und port.onMessage auszutauschen. Die native Anwendung wird ausgeführt, bis sie selbst beendet wird oder der Aufrufer Port.disconnect() aufruft, oder die Seite, die Port erstellt hat, zerstört wird. Sobald der Port getrennt ist, gibt der Browser dem Prozess einige Sekunden, um sauber zu beenden, und beendet ihn dann, falls er nicht schon beendet wurde.

Weitere Informationen finden Sie unter Native Messaging.

Syntax

js
let port = browser.runtime.connectNative(
  application // string
)

Parameter

application

string. Der Name der nativen Anwendung, zu der eine Verbindung hergestellt werden soll. Dies muss mit der Eigenschaft "name" in der Manifestdatei der nativen Anwendung übereinstimmen.

Rückgabewert

Ein runtime.Port-Objekt. Der Port, den der Aufrufer verwenden kann, um Nachrichten mit der nativen Anwendung auszutauschen.

Browser-Kompatibilität

BCD tables only load in the browser

Beispiele

Dieses Beispiel verbindet sich mit der nativen Anwendung "ping_pong" und beginnt, Nachrichten von dieser Anwendung zu empfangen. Es sendet der nativen Anwendung auch eine Nachricht, wenn der Benutzer ein Browser-Aktionssymbol anklickt:

js
/*
On startup, connect to the "ping_pong" app.
*/
let port = browser.runtime.connectNative("ping_pong");

/*
Listen for messages from the app.
*/
port.onMessage.addListener((response) => {
  console.log(`Received: ${response}`);
});

/*
On a click on the browser action, send the app a message.
*/
browser.browserAction.onClicked.addListener(() => {
  console.log("Sending:  ping");
  port.postMessage("ping");
});

Beispielerweiterungen

Hinweis: Diese API basiert auf der chrome.runtime API von Chromium. Diese Dokumentation stammt aus runtime.json im Chromium-Code.