Я пытаюсь сделать расширение chrome, которое вызывает java-код на моем ПК. Вызов работает нормально, код выполняется, но я пытаюсь вернуть переменные в chrome extension, но не работает. Я вижу в консоли, что слушатель onDisconect
пишет консольное сообщение, но слушателю onMessage
нет. Я не знаю проблемы.Расширение Java и chrome, сообщения туземных
Вот мой код в расширении хром:
манифеста JSON
{
"name": "Prueba native message",
"version": "1.0",
"manifest_version": 2,
"description": "Chrome extension interacting with Native Messaging and localhost.",
"app": {
"background": {
"scripts": ["background.js"]
}
},
"icons": {
},
"permissions": [
"nativeMessaging"
]
}
background.js
var port = chrome.runtime.connectNative('com.app.native');
function message(msg) {
console.warn("Received" + msg);
}
function disconect() {
console.warn("Disconnected");
}
console.warn("se ha conectado");
port.onMessage.addListener(message);
port.onDisconnect.addListener(disconect);
port.postMessage({text: "Hello, my_application"});
console.warn("message send");
А вот мои локальные файлы.
.bat
cd C:\Users\pc\IdeaProjects\eDNI\out\production\code && java Main
Main.java
public class Main {
public static void main(String argv[]) throws IOException {
System.out.println("{\"m\":\"hi\"");
}
}
В этом коде я только пытаюсь вернуть простое сообщение с расширением.
Я стараюсь это, и ничего, консоль говорит то же самое, я пытаюсь изменить .js и теперь, как это: chrome.runtime.sendNativeMessage ('com.app. native ', {text: "Hello"}, function (response) { console.log («Received» + response); }); И сообщение в консоли «Received undefined» –
@MarcosPires См. Обновление к моему ответу. В вашем манифесте отсутствует тип интерфейса 'stdio'. Вы используете 'System.out', что эквивалентно' stdout'. –
@Peter Если вы говорите, что включаете «тип» в манифест локального файла, у меня есть его, и формат: '{" name ":" com.app.native ", " description ":" Ваши причины транспортировки " "путь": "C:/Users/PC/Desktop/нативное сообщение/native_app/prueba.bat", "типа": "STDIO", "allowed_origins": [ \t" хром-расширение : // dmclpldhhlhdmkmikdmgpcjpcnpikgpp/" ] }' Извините, что не включил его раньше. Я не понимаю вас с 'System.out', это нормально, или я ошибаюсь? –