runtime.connectNative()
Подключает расширение к нативному приложению на компьютере пользователя. В качестве параметра принимается имя нативного приложения. Оно запускается, и вызывающему коду возвращается объект runtime.Port для дальнейшей работы. Вызывающий код может использовать этот объект Port для обмена сообщениями с нативным приложением, используя Port.postMessage() и port.onMessage. Нативное приложение будет работать до тех пор, пока не завершит свою работу самостоятельно, или вызывающий код не вызовет Port.disconnect(), или страница, которая создала Port, не будет уничтожена. После того, как Port будет отключено, браузер предоставит процессу несколько секунд для корректного завершения, а затем завершит его, если он не завершится самостоятельно.
Для получения дополнительной информации см. Нативное сообщение.
Синтаксис
let port = browser.runtime.connectNative( application // string )
Параметры
application-
string. Имя нативного приложения, с которым нужно подключиться. Оно должно совпадать со свойством "name" в файле манифеста нативного приложения нативного приложения.
Возвращаемое значение
Объект runtime.Port. Порт, который вызывающий код может использовать для обмена сообщениями с нативным приложением.
Совместимость с браузером
| Рабочий стол | Мобильный | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | |
connectNative |
29 | 15 | 50 | ? | 16 | 14См. документацию на developer.apple.com о нативном обмене сообщениями в Safari. |
? | ? | 68 | ? | 15См. документацию на developer.apple.com о нативном обмене сообщениями в Safari. |
? |
Примеры
В этом примере подключается к нативному приложению "ping_pong" и начинает прослушивать сообщения от него. Также, когда пользователь нажимает значок действия браузера, отправляется сообщение нативному приложению:
/* 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 основан на API chrome.runtime от Chromium. Эта документация взята из runtime.json в коде Chromium.
© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/connectNative