Wie zu verwenden Qt WebEngine und QWebChannel?
Ich bin mit der neuen WebEngine herum zu spielen und zu lernen.
Ich habe versucht zu finden, einige ähnliche Methoden gefunden, die Qt-WebKit -: addToJavaScriptWindowObject()
Ich fand, dass mit Qt WebEngine, die ich habe zu verwenden die QWebChannel
registrieren Funktionen der Javascript-window-Objekt. Wenn dies richtig ist, es bringt mich auf folgende Frage.
Habe ich installiert Qt 5.4.0 auf meinem computer. Ich bemerkte, dass qwebchannel.js
ist nicht in der SDK auf meinem PC installiert. Ich fand es auf der Git source.
Wenn ich ein Qt native desktop-Anwendung mit QWebEnginePage
und QWebEngineView
, was brauche ich, um in der Lage sein zu registrieren, Funktionen, die auf dem Javascript-window-Objekt?
Meinem desktop-Anwendung navigiert, automatisch auf eine http-Seite, die ich erstellt habe. So habe ich Zugriff auf die Inhalte zu den QWebEngineView
.
Was sind die Schritte zu ergreifen, so kann ich diese Arbeit machen?
InformationsquelleAutor user1185305 | 2015-02-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Qt5.6, wenn Sie wollen C++ - Teil und JavaScript zu kommunizieren, ist der einzige Weg, es zu tun ist mit QWebChannel auf eine QWebEngineView, wie Sie erklärte. Sie tun es auf diese Weise in die
.cpp
Datei:Hier, sagen Sie einfach, Sie registrieren ein Objekt mit dem Namen
TheNameOfTheObjectUsed
werden auf der JS-Seite. Nun, dies ist der Teil der code in der JS-Seite :Nun, wenn Sie abrufen möchten, und einige Eigenschaften der Klasse in der JS-Seite, benötigen Sie eine Methode, die auf der C++ - Seite, die gibt einen string, eine Ganzzahl, eine lange... Das ist, was es sieht aus wie auf der C++ Seite, in Ihrem
.h
:Und jetzt bekommen Sie die int so auf die JS-Seite :
Dies ist eine sehr einfache Erklärung, und ich empfehle Ihnen zu sehen dieses video, die war sehr nützlich für mich. Auch, möchten Sie vielleicht, um mehr über die JavaScript-API zur Verfügung gestellt von QWebChannel, sowie die Dokumentation über QWebChannel.
Hoffe, das hilft!
qt.webChannelTransport
? Ich konnte nicht finden es überall in der Dokumentation oder Beispiel...Sie finden es in der QWebEnginePage doc:
The transport is exposed in the JavaScript world as qt.webChannelTransport, which should be used when using the Qt WebChannel JavaScript API.
InformationsquelleAutor IAmInPLS
Qt hat die Dokumentation nun so aus:
Qt WebChannel Standalone-Beispiel
Dann müssen Sie
QWebSocketServer
zu Ihrer cpp-app, dieQWebEngineView
's HTML/Javascript wird eine Verbindung mit einem WebSocket. Dann nutzen SieQWebChannel
für zwei-Wege-Kommunikation.InformationsquelleAutor bendiy