2016-05-23 6 views
0

Ich muss eine Nachricht von einer Chrome-App an eine Webseite außerhalb der Anwendung senden. Ich habe kein ProblemSie müssen eine Nachricht von der Chrome Packaged App an eine Webseite senden.

chrome.runtime.sendMessage(extID,toSend, function(response) { 
    console.log("messag sent to " + extID); 
    if(response){ 
    console.log(response.received); 
    } 
    else { 
    console.log("no reply"); 
    }; 
}); 

mit Nachrichten von der Web-Seite an die gepackte Anwendung zu senden ich eine Antwort zurück von der gepackte Anwendung bekommen. Kein Problem. Aber ich muss weiterhin Informationen von der App zu der Seite senden, die über die einzelne Antwort hinausgeht.

Ich habe versucht, diesen Code auf der App Seite zu verwenden:

chrome.tabs.query({active: true, currentWindow: true}, function(tabs) { 
    chrome.tabs.sendMessage(tabs[0].id, msg, function(response) { 
    console.log(response.farewell); 
    }); 
    }); 
} 

Aber es funktioniert nicht chrome.tabs als gültiges Objekt zu erkennen. Wenn ich dem Abschnitt "Berechtigungen" von manifest.json "Tabs" hinzufüge, sagt er mir, dass die Tabs-Berechtigung in gepackten Apps nicht unterstützt wird.

Gibt es eine Möglichkeit, Nachrichten von einer Chrome-App an eine externe Webseite zu senden, die über die einfache Antwort auf eine Nachricht hinausgeht, die von der Seite selbst gesendet wird?

+0

chrome-app oder chrome-extension? –

+0

Mein Programm ist eine Chrome-App. Ich brauche Zugriff auf den seriellen Port, daher kann ich keine Erweiterung verwenden. –

Antwort

0

Sie benötigen im Manifest external_connectable, um die Website-Domäne, aus der Sie senden, zu verwenden, und Sie müssen chrome.runtime.onMessageExternal oder chrome.runtime.onConnectExternal verwenden Dies ist alles in der documentation.

+0

Danke, kzahel. Ich hätte klarstellen sollen, dass ich im Manifest extern verbindbar bin, und ich bin in der Lage, auf die Webseite gesendete Nachrichten zu empfangen und darauf zu antworten. Ich habe auch nach runtime.connect und onConnectExternal gesucht, aber die Dokumente scheinen darauf hinzuweisen, dass dies nur für Erweiterungen und nicht für gepackte Apps funktioniert. In jedem Fall versuche ich, eine Nachricht von der App an die Webseite zu senden, NICHT einfach auf eine von der Webseite gesendete Nachricht zu antworten. –

+0

Ich meinte, dass ich Nachrichten, die von der Webseite an die App gesendet werden, empfangen und beantworten kann. –

+0

Gehen Sie jetzt runtime.connect genauer unter die Lupe. Dies könnte funktionieren. –

Verwandte Themen