[Qtwebengine] Handle frames and web forms with QWebEngine
Eduard Takhtamirov
gibbopotam at gmail.com
Tue Feb 16 18:56:33 CET 2016
My example (in the very wild)
1. C++ code
mainwindow.cpp:
channel = new QWebChannel(); // channel is a QWebChannel * type object
page->setWebChannel(channel); // page is a QWebEnginePage* type object
myJavaScriptWork = new JavaScriptWork(); // The class JavaScriptWork
has public methods to be called by JavaScript on the Web page, in
particular mySpecialMethod()
channel->registerObject(QStringLiteral("jsworker"), myJavaScriptWork);
// jsworker will be accessible by JavaScript on the Web page
javascriptwork.h:
public:
Q_INVOKABLE
void mySpecialMethod(void);
2. JavaScript code on our Web server:
// to see if it's our special browser, but don't die if not
try {
/* qwebchannel.js should be present and invoked,
http://doc.qt.io/qt-5/qtwebchannel-javascript.html */
new QWebChannel(qt.webChannelTransport, function (channel) {
var jsworker = channel.objects.jsworker;
jsworker.mySpecialMethod(); // run our C++ method
});
} catch (err) {
// probably a default browser
}
Good luck
--
Ed Takhtamirov
More information about the QtWebEngine
mailing list