runtime.connectNative()

将扩展连接到用户计算机上的本地应用程序。此函数将本地应用程序的名称作为参数。它会启动本地应用程序,并向调用者返回一个 runtime.Port 对象。然后,调用者可以使用 Port 对象通过 Port.postMessage()port.onMessage 与本地应用程序交换消息。本地应用程序将一直运行,直到它自行退出,或者调用者调用 Port.disconnect(),或者创建 Port 的页面被销毁。一旦 Port 断开连接,浏览器会给该进程几秒钟时间正常退出,如果进程在此期间未退出,则会将其终止。

有关更多信息,请参阅 Native messaging

语法

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

参数

application

string。要连接的本地应用程序的名称。这必须与 本地应用程序的 manifest 文件 中的 "name" 属性匹配。

返回值

一个 runtime.Port 对象。调用者可以使用此端口与本地应用程序交换消息。

示例

此示例连接到名为 "ping_pong" 的本地应用程序,并开始监听来自该应用程序的消息。当用户点击浏览器操作图标时,它还会向本地应用程序发送一条消息。

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

扩展程序示例

浏览器兼容性

注意:此 API 基于 Chromium 的 chrome.runtime API。本文档摘录自 Chromium 代码中的 runtime.json