Ich denke, es ist schon Antwort wartete, aber nicht sicher: Native app does not work in Chrome extension
Unter Linux es gut funktioniert, aber auf Windows 7 und 8 habe ich immer eine Fehlermeldung erhalten "Angegebene nativen Messaging-Host nicht gefunden ".Chrome nativen Messaging auf Windows
Das ist mein Registry (I bereits mit doppelten Backslash und mit HKEY_LOCAL_MACHINE versucht haben):
REG ADD HKEY_CURRENT_USER\SOFTWARE\Google\Chrome\NativeMessagingHosts\com.google.chrome.example.echo /ve /d C:\Users\Chriss\Desktop\nativeMessaging\host\com.google.chrome.example.echo-win.json
manifest.json:
{
// Extension ID: knldjmfmopnpolahpmmgbagdohdnhkik
"key":"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcBHwzDvyBQ6bDppkIs9MP4ksKqCMyXQ/A52JivHZKh4YO/9vJsT3oaYhSpDCE9RPocOEQvwsHsFReW2nUEc6OLLyoCFFxIb7KkLGsmfakkut/fFdNJYh0xOTbSN8YvLWcqph09XAY2Y/f0AL7vfO1cuCqtkMt8hFrBGWxDdf9CQIDAQAB",
"name": "Native Messaging Example",
"version": "1.0",
"manifest_version": 2,
"description": "Send a message to a native application.",
"browser_action": {
"default_title": "Test Extension",
"default_popup": "main.html"
},
"icons": {
"128": "icon-128.png"
},
"permissions": [
"nativeMessaging"
]
}
com.google.chrome.example.echo-win.json:
{
"name": "com.google.chrome.example.echo",
"description": "Chrome Native Messaging API Example Host",
"path": "C:\Users\Chriss\Desktop\nativeMessaging\host\native-messaging-example-host.exe",
"type": "stdio",
"allowed_origins": [
"chrome-extension://knldjmfmopnpolahpmmgbagdohdnhkik/"
]
}
einheitliche Messaging-example-host.exe:
int main(int argc, char* argv[]) {
// Define our message
std::string message = "{\"text\": \"This is a response message\"}";
// Collect the length of the message
unsigned int len = message.length();
// We need to send the 4 bytes of length information
std::cout
<< char(((len >> 0) & 0xFF))
<< char(((len >> 8) & 0xFF))
<< char(((len >> 16) & 0xFF))
<< char(((len >> 24) & 0xFF));
// Now we can output our message
std::cout << message;
return 0;
}
JS Schnipsel (es ist von http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/nativeMessaging/app/main.js?revision=228976):
function connect() {
var hostName = "com.google.chrome.example.echo";
appendMessage("Connecting to native messaging host <b>" + hostName + "</b>")
port = chrome.runtime.connectNative(hostName);
port.onMessage.addListener(onNativeMessage);
port.onDisconnect.addListener(onDisconnected);
updateUiState();
}
Ich kann nicht herausfinden, was das Problem ist. Wo ist meine Schuld?
Aktualisierung
Nach der Überwachung der Registrierungen mit Procces Monitor. Ich habe festgestellt, dass die chrome.exe nach dem Schlüssel in den 64-Bit-Schlüsseln sucht. Jetzt, wie ich sehen kann, gibt es keinen relevanten Registrierungsschlüssel, aber ich bekomme immer noch den Fehler.
Vielen Dank für Ihre Hilfe! Das Problem, das von der absoluten Pfadzeichenfolge in der Datei manifest.json verursacht wird. – Chriksz
Bitte helfen Sie, warum das nicht funktioniert, aber Sie arbeiten? http://StackOverflow.com/Q/26021106/285594 – YumYumYum
Sehr geehrte @ Spike0xffIch habe eine Frage: Was ist die Art der Native Messaging? es ist eine Chrome App oder eine Erweiterung? –