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

8

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 zu bekommen, die mit meinem C # -Programm arbeitet, um Nachrichten hin und her zu leiten. Ich habe eine Menge Code-Demos auf Stackoverflow gesehen und das ist hauptsächlich das, was ich gemacht habe, aber es scheint, dass alle Beispiele nicht an meinem Ende funktionieren.

Das Problem, das ich habe, ist der Fehler:

%Vor%

Immer wenn ich versuche, mich mit dem Port zu verbinden.

Ich bin mir nicht sicher, was ich falsch mache, da ich hier andere Theorien verfolgt habe und sie alle behaupten, dass es funktioniert ....

Die JS main.js:

%Vor%

Das manifest.json:

%Vor%

Die Registrierung:

%Vor%

C # -Code:

%Vor%

com.google.chrome.example.echo-win.json-Datei:

%Vor%

HTML main.html:

%Vor%

Meine Verzeichnisstruktur in Visual Studio:

%Vor%

Nachdem ich VS Debug gestartet habe, installiere ich das Plugin und lade die Datei main.html im Chrome Browser hoch und klicke auf die Schaltfläche "connect". Das ist, wenn ich diesen Fehler bekomme.

Was vermisse ich?

AKTUALISIEREN

Das ist die richtige ID dafür. Ich habe es so gehalten, da ich vermute, dass der "Schlüssel" die ID bestimmt.

    
StealthRT 09.10.2015, 14:55
quelle

4 Antworten

6

Zu viele Verwirrungen und nicht gut erklärt, was wirklich für mich funktionierte. Deshalb versuche ich hier, einen "idiotensicheren" Doc zu machen. (Bitte verbessern Sie diese Version)

Ziel: Windows OS, Google Chrome bis Version 50 getestet, kommunizieren mit Native-Anwendung

Schritt 1:

Download: Ссылка

Schritt 2:

Laden Sie die heruntergeladene App in Google Chrome

Schritt 3:

a) Fügen Sie den Registrierungsschlüssel hinzu

REG ADD "HKLM\Software\Google\Chrome\NativeMessagingHosts\com.google.chrome.example.echo" /ve /t REG_SZ /d "C:\run-my-exe\manifest.json" /f

b) Um einen benutzerdefinierten Chrome-Executer zu erstellen, kopieren Sie Folgendes in C: \ run-my-exe \ run-chrome.bat:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --enable--native-messaging --native-messaging-hosts="com.google.chrome.example.echo=C:\run-my-exe\manifest.json"

Schritt 4: Host

a) setzen Sie Folgendes auf C: \ run-my-exe \ manifest.json

%Vor%

b) setzen Sie Folgendes auf C: \ run-my-exe \ native-messaging-example-host.bat

%Vor%

Schritt 5: Wie führe ich es jetzt aus?

a) Öffnen Sie Chrome mit diesem Skript: C:\run-my-exe\run-chrome.bat

b) im Chrome gehen Sie zu chrome://apps

c) Start

über das Symbol

nicht wie folgt:

Endgültige Ausgabe:

    
YumYumYum 13.05.2016 14:26
quelle
2

Sie sollten main.html nicht direkt, sondern über den Chrome App Starter in chrome: // apps /

öffnen     
Chet 09.10.2015 15:25
quelle
1

Vorsicht beim Kopieren und Einfügen!

Ссылка

Ich nehme an, dass Sie dort Ihr Manifest haben. Ersetzen Sie den "Schlüssel" durch den richtigen "

und in "allowed_origins" verwenden Sie Ihre tatsächliche Erweiterungs-ID anstelle des Beispiels aus dem Beispiel

Ссылка

Es könnte dort mehr Fehler geben, aber das sind nur die, die ich auf den ersten Blick sehe.

    
DannyZB 09.10.2015 15:50
quelle
1

Da Sie C # -Projekt verwenden, das eine exe -Datei als Ausgabe erzeugt, sollte die Datei von native-messaging-example-host.bat nicht wie das ursprüngliche Beispiel sein, das wie folgt aussieht:

%Vor%

Stattdessen sollte die Batch-Datei wie folgt geändert werden:

%Vor%     
H. Aqjn 15.11.2015 06:55
quelle