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。