chrome-native-messaging

___ tag123c ___ C ++ ist eine universelle Programmiersprache. Es wurde ursprünglich als Erweiterung von C entworfen und behält eine ähnliche Syntax, ist aber jetzt eine komplett andere Sprache. Verwenden Sie dieses Tag für Fragen zu Code, der mit einem C ++ - Compiler kompiliert werden soll. ___ qstnhdr ___ Der native Chrome-Host in C ++ kann nicht mit Chrome kommunizieren ___ qstntxt ___

Ich versuche, eine Chrome-Erweiterung mit %code% und %code% zu implementieren. Ich verfolge die Chrome-Dokumentation, lade das native Messaging-Beispiel herunter und ändere die native App in C ++.

Die native App kann die Nachricht jedoch nicht von der Chrome-Erweiterung empfangen.

Wenn die native App, die die Funktion %code% verwendet, eine Nachricht an die Chrome-Erweiterung schreibt, kann die Erweiterung nicht empfangen werden und die Nachricht wird nur in der Konsole angezeigt.

Irgendwelche Ideen, wie man das Problem löst?

    
___ tag123googlechromextension ___ Erweiterungserweiterung für den Google Chrome-Webbrowser. Sie schreiben sie mithilfe von Webtechnologien wie HTML, JavaScript und CSS. ___ tag123chromenativeMessaging ___ Native Messaging ist ein Chrome-spezifischer Mechanismus, mit dem Chrome-Erweiterungen mit nativen Anwendungen kommunizieren können, die auf dem Hostcomputer ausgeführt werden. ___ answer35060349 ___

Für zukünftige Google-Leute, hier ist, wie ich es mache:

C-Stil

Lesen

%Vor%

Schreiben

%Vor%

C ++ - Stil

Lesen

%Vor%

Schreiben

%Vor%     
___ answer26583974 ___

Sie haben nicht viele Informationen über das, was Sie tatsächlich versucht haben, bereitgestellt. Daher werde ich mein Bestes geben, um die erforderlichen Schritte zur Implementierung der Chrome-Erweiterung, des Native Messaging-Hosts und der Herstellung der Kommunikation zwischen ihnen zu erläutern. (Unter folgendem Link erhalten Sie weitere Informationen zum Native Messaging von Chrome: Chrome Native Messaging How to .

CHROM-VERLÄNGERUNG

Zunächst müssen wir die Chrome-Erweiterung einrichten. Da dies eine sehr einfache Erweiterung sein wird, benötigen wir nur die Datei manifest.json (bitte beachten Sie, dass dies die Manifestdatei der Erweiterung ist - der native Host wird auch eine eigene Manifestdatei haben) und background.js javascript implementation.

Die folgende Beispieldatei manifest.json :

%Vor%

Wichtig ist hier, dass die Implementierung in background.js bereitgestellt wird, die unterstützte Chrome-Version ist mindestens 29 und HTTP und HTTPS werden beide unterstützt.

Als nächstes hat die Datei background.js folgenden Inhalt:

%Vor%

Der Code selbst ist ziemlich selbsterklärend - wir versuchen, eine Verbindung zum nativen Host herzustellen, der durch den Schlüssel com.dolby.native_messaging_host identifiziert wurde (ich komme gleich darauf). Dann registrieren wir einen Listener für das Ereignis onMessage (dieses Ereignis wird ausgelöst, wenn der native Host eine Nachricht an die Chrome-Erweiterung sendet). Wir registrieren auch einen Listener für das Ereignis disconnect (wenn beispielsweise der native Host stirbt, wird dieses Ereignis ausgelöst). Und schließlich senden wir eine Nachricht mit der Methode postMessage.

NATIVE MESSAGING HOST

Jetzt hat der native Host auch seine eigene manifest.json-Datei. Sehr einfache manifest.json-Datei für nativen Host ist wie folgt:

%Vor%

Ein paar interessante Dinge hier: Name identifiziert den Schlüssel, unter dem dieser native Host registriert ist. Der Pfad ist der vollständige Pfad zur nativen Host-Programmdatei. Art der Kommunikation stdio bedeutet, dass wir Standard-Input / Output für die Kommunikation verwenden (nur Typ derzeit unterstützt). Und schließlich geben allowed_origins an, welche Erweiterungen mit diesem nativen Host kommunizieren können - , damit Sie herausfinden müssen, was der Schlüssel Ihrer Erweiterung ist! .

Der nächste Schritt besteht darin, diesen Native Messaging-Host in der Registrierung (für Windows) zu registrieren und den Speicherort für seine Manifestdatei anzugeben. Die folgenden Screenshots erklären, wie dies für Windows funktioniert (siehe den bereitgestellten Link, um herauszufinden, wie dies unter OSX und Linux funktioniert):

Nachdem Sie den Registrierungseintrag für Ihren nativen Host hinzugefügt haben, müssen Sie nur noch Ihren nativen Host schreiben. Der folgende C ++ - Code implementiert einen einfachen nativen Host, der Nachrichten von der Standardeingabe liest und die Antwort auf die Standardausgabe schreibt (wenn Sie die Nachricht # STOP # an den nativen Host-Exit senden):

%Vor%

Nachrichten, die von der Nebenstelle an den nativen Host gesendet werden, werden so gebildet, dass das erste Byte die Anzahl der Bytes in der Nachricht speichert. Das erste, was der native Host tun muss, ist, die ersten 4 Bytes zu lesen und die Größe der Nachricht zu berechnen. Ich habe erklärt, wie man das in einem anderen Beitrag tut, der hier gefunden werden kann:

Wie Größe von berechnen die Nachricht, die von der Chrome-Erweiterung gesendet wird

    
___
1
Antwort

Natives Messaging Chrome

Ich versuche Native Messaging zwischen meiner Chrome-Erweiterung und meiner c # -Anwendung zu bekommen. Das Javascript funktioniert gut, aber ich bekomme diesen Fehler:    Fehler bei der Kommunikation mit dem nativen Messaging-Host. Die A...
14.06.2014, 10:49
1
Antwort

chrome.runtime.connectNative generiert Uncaught TypeError: undefined ist keine Funktion

Ich habe eine Chrome-Erweiterung geschrieben, die diese connect () - Funktion aufruft, um eine Verbindung zu einem lokalen C ++ - Programm herzustellen: %Vor% Ich kann den Test1 in der Konsole sehen, aber danach habe ich den Fehler bekommen...
13.07.2014, 18:42
4
Antworten

Native Messaging-API für Chrome chrome.runtime.connectNative ist keine Funktion

Ich möchte die Inhaltsseite bearbeiten, die sich derzeit auf der Registerkarte in Chrome befindet, und wenn dies unten nicht möglich ist, muss ich dafür den richtigen Weg finden! Hey, alles, was ich versuche, diese neue Chrome-Erweiterung z...
09.10.2015, 14:55
2
Antworten

Der native Chrome-Host in C ++ kann nicht mit Chrome kommunizieren

Ich versuche, eine Chrome-Erweiterung mit runtime.connectNative und postMessage zu implementieren. Ich verfolge die Chrome-Dokumentation, lade das native Messaging-Beispiel herunter und ändere die native App in C ++. Die native App kann...
27.10.2014, 07:10