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
。