Quiero crear una extensión de Chrome de mensajería nativa simple. Es decir, necesito comunicarme con la extensión de Chrome a través de una web y la aplicación web a través de la extensión.
Pero cuando el mensaje del puerto es console.log , no se proporciona ningún resultado. Pero se muestra el valor enviado por el script de contenido a través de request.value. Cómo arreglar este problema.
Intenté abrir el código vs aquí haciendo clic en un botón insertado en la página web a través del script de contenido y tuve éxito. Ahora quiero pasar un mensaje de la extensión de Chrome a la página web mediante mensajería nativa.
manifiesto.json
{ "name": "Native Messaging Ex", "version": "1.0", "description": "Native messaging", "background": { "scripts": ["background.js"] }, "manifest_version": 2, "permissions": ["nativeMessaging"], "content_scripts": [ { "matches": ["http://*/*", "https://*/*"], "run_at": "document_idle", "js": ["contentScript.js"] } ], "browser_action": { "default_popup": "popup.html" } }contra el murciélago
@echo off start codecontra json
{ "name": "com.vscode", "description": "My Application", "path": "vs.bat", "type": "stdio", "allowed_origins": [ "chrome-extension://bmnmbagcjohegbabfgkhhmdgph/" ] }contentScript.js
// runs on the matching webpage var button = document.createElement('button'); var buttonTextNode = document.createTextNode('Click me to trigger something'); var body = document.querySelector('body'); button.appendChild(buttonTextNode); body.appendChild(button); // Event listener button.addEventListener('click', function () { chrome.runtime.sendMessage({ type: 'info', value: 'Hello World from other planet!', }); });fondo.js
// connect to the native messaging app chrome.runtime.onMessage.addListener(function (request, senders) { if (request.type === 'info') { var port = chrome.runtime.connectNative('com.vscode'); console.log(request.value); // Hello World from other planet! port.postMessage(request.value); port.onMessage.addListener(function (message) { console.log(message); // Nothing here }); port.onDisconnect.addListener(function () { if (chrome.runtime.lastError) { console.log(chrome.runtime.lastError); } }); } });