runtime.connectNative()

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

有关更多信息,请参阅 原生消息传递

语法

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

参数

application

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

返回值

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

浏览器兼容性

BCD 表格仅在浏览器中加载

示例

此示例连接到本地应用程序 "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