내 PC에서 Java 코드를 호출하는 크롬 확장을 시도합니다. 호출이 제대로 작동하지만 코드가 실행되지만 크롬 확장에 변수를 반환하려고 시도하지만 작동하지 않습니다. 콘솔에서 수신기가 onDisconect
콘솔 메시지를 쓰지만 수신기는 onMessage
이 아닙니다. 나는 그 문제를 모른다.Java 및 크롬 확장, 기본 메시지
매니페스트 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");
그리고 여기 내 로컬 파일 :
다음은 크롬 확장에 내 코드입니다.
이 코드에서 Main.java
public class Main {
public static void main(String argv[]) throws IOException {
System.out.println("{\"m\":\"hi\"");
}
}
.bat 인
cd C:\Users\pc\IdeaProjects\eDNI\out\production\code && java Main
난 단지 확장에 간단한 메시지를 반환하려고합니다.
"type": "stdio"
나는 내가의 .js를 변경하려고하고 지금처럼, 콘솔이 같은 말한다,이, 아무것도 시도하지 않습니다. native ', {text : "Hello"}, 함수 (응답) { console.log ("수신"+ 응답), }); 콘솔의 메시지가 "수신되지 않았습니다" –@MarcosPires 내 대답의 업데이트를 참조하십시오. 매니페스트에 인터페이스 유형'stdio'가 없습니다. 'stdout'와 같은'System.out'을 사용하고 있습니다. –
@Peter 로컬 파일의 매니페스트에'type'을 넣으려는 경우, 형식이 있습니다. '{ "name": "com.app.native", "description": " 귀하의 desctiption ", "경로 ":"C :/사용자/PC/데스크탑/네이티브 메시지/native_app/prueba.bat " "유형 ":"stdio ", "allowed_origins ": [ \t"chrome-extension : // dmclpldhhlhdmkmikdmgpcjpcnpikgpp/" " } 이전에는 포함되지 않으셔서 죄송합니다. 나는'System.out'으로 당신을 이해하지 못합니다. 그렇지 않습니까? –