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