runtime.connectNative()
Connects the extension to a native application on the user's computer. This takes the name of a native application as a parameter. It starts the native application and returns a runtime.Port
object to the caller. The caller can then use the Port
to exchange messages with the native application using Port.postMessage()
and port.onMessage
. The native application will run until it exits itself, or the caller calls Port.disconnect()
, or the page that created the Port
is destroyed. Once the Port
is disconnected the browser will give the process a few seconds to exit gracefully, and then kill it if it has not exited.
For more information, see Native messaging.
Syntax
let port = browser.runtime.connectNative(
application
)
Return value
A runtime.Port
object. The port which the caller can use to exchange messages with the native application.
Browser compatibility
|
Desktop |
Mobile |
|
Chrome |
Edge |
Firefox |
Internet Explorer |
Opera |
Safari |
WebView Android |
Chrome Android |
Firefox for Android |
Opera Android |
Safari on IOS |
Samsung Internet |
connectNative |
29 |
15 |
50 |
? |
16 |
14See the documentation on developer.apple.com about native messaging in Safari.
|
? |
? |
68 |
? |
15See the documentation on developer.apple.com about native messaging in Safari.
|
? |
Examples
This example connects to the native application "ping_pong" and starts listening for messages from it. It also sends the native application a message when the user clicks a browser action icon:
let port = browser.runtime.connectNative("ping_pong");
port.onMessage.addListener((response) => {
console.log(`Received: ${response}`);
});
browser.browserAction.onClicked.addListener(() => {
console.log("Sending: ping");
port.postMessage("ping");
});