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

8

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 %Vor%

in der Zeile

%Vor%

Meine Manifestdatei für Erweiterungen ist hier:

%Vor%

Mein com.a.chrome_interface.json sieht so aus:

%Vor%

und com.a.chrome_interface ist eine ausführbare C ++ - Datei von Linux, die eine Datei generiert, wenn diese aufgerufen wird und diese Datei nie erstellt wird. Ich habe beide Dateien in

gestellt %Vor%

Ich denke also, ich habe mein C ++ korrekt registriert, aber ich denke auch, wenn ich es falsch registrieren würde, würde ich einen anderen Fehler bekommen. Wenn ich chrome.extension.connect () verwende, läuft das Skript durch und die Fehlermeldung verschwindet, aber keine Daten kommen in mein C ++ Programm.

Ich habe gelesen und versuche den Anweisungen zu folgen Ссылка und googelte viel, aber ich konnte den Grund meines Problems herausfinden.

Ich benutze Chromium 34 auf Ubuntu 12.04.

  1. Muss ich, wenn ich eine Erweiterung schreibe, chrome.runtime.connectNative () oder chrome.extension.connectNative ()?
  2. verwenden
  3. Wie kann ich Daten an mein C ++ Programm anschließen und senden?
EmbeddedDesign 13.07.2014, 18:42
quelle

1 Antwort

13

connectNative() ist in einem Inhaltsskript nicht verfügbar. Um eine Verbindung zu einem lokalen Programm herzustellen, muss das Inhaltsskript die Daten z. zum Hintergrundskript der Erweiterung und im Hintergrundskript, %Code% kann verwendet werden. Also hier eine Lösung:

contentscript.js:

%Vor%

background.js:

%Vor%

manifest.json wie oben in meiner Frage aber zusätzlich:

%Vor%

port = chrome.extension.connectNative ist unverändert wie in der obigen Frage.

    
EmbeddedDesign 14.07.2014, 18:20
quelle