Reputation: 9724
QtWebkit-plugins is a library that provides features to the QWebView
, eg SpellCheck
and Notification Web API
.
Read about:
I tried to compile the code in Windows, but my QWebView
not working as expected, in other words, SpellCheck
and Notification Web API
not working. It's like I've been not-using QtWebkit-plugins
. Which can be?
In the documentation that says to compile I have to run:
$ qmake
$ make && make install
Read more in QtWebkit-plugins repository
I'm using mingw
, instead of make
I used mingw32-make
:
hunspell
hunspell
for C:\Qt5.4.0\5.4\mingw491_32\bin
and C:\Qt5.4.0\5.4\mingw491_32\lib
I compiled qtwebkit-plugins using in cmd:
qmake
mingw32-make && mingw32-make install
mingw32-make
generated libqtwebkitpluginsd.a
and qtwebkitplugins.dll
libqtwebkitpluginsd.a
for C:\Qt5.4.0\5.4\mingw491_32\lib
qtwebkitplugins.dll
for C:\Qt5.4.0\5.4\mingw491_32\plugins\webkit
and C:\Qt5.4.0\5.4\mingw491_32\bin
After that I compiled another simple project that uses QWebView
then tested the SpellCheck
in a <textarea spellcheck="true"></textarea>
and did not work.
I tested the Notification Web API
and also did not work.
Note: When running my project using QT_DEBUG_PLUGINS=1
and use Notification Web API
in the application output tab (in QtCreator) returns:
Found metadata in lib C:/Qt5.4.0/5.4/mingw491_32/plugins/webkit/qtwebkitplugins.dll, metadata=
{
"IID": "org.qtwebkit.QtWebKit.QtWebKitPlugin",
"MetaData": {
},
"className": "QtWebKitPlugin",
"debug": false,
"version": 328704
}
loaded library "C:/Qt5.4.0/5.4/mingw491_32/plugins/webkit/qtwebkitplugins.dll"
QLibraryPrivate::unload succeeded on "C:/Qt5.4.0/5.4/mingw491_32/plugins/webkit/qtwebkitplugins.dll"
QSystemTrayIcon::setVisible: No Icon set
It seems to me that the dll
is loaded, it just is not working.
How do my projects work these features?
Upvotes: 1
Views: 959
Reputation: 9724
For this work in QT-5.2+ is necessary to modified the qwebkitplatformplugin.h
file
Change this:
QT_BEGIN_NAMESPACE
Q_DECLARE_INTERFACE(QWebKitPlatformPlugin, "com.nokia.Qt.WebKit.PlatformPlugin/1.9");
By this:
QT_BEGIN_NAMESPACE
Q_DECLARE_INTERFACE(QWebKitPlatformPlugin,
"org.qt-project.Qt.WebKit.PlatformPlugin/1.9");
If needed compatibility with QT-4.8 change the code for this:
QT_BEGIN_NAMESPACE
#if QT_VERSION >= 0x050200
Q_DECLARE_INTERFACE(QWebKitPlatformPlugin, "org.qt-project.Qt.WebKit.PlatformPlugin/1.9")
#else
Q_DECLARE_INTERFACE(QWebKitPlatformPlugin, "com.nokia.Qt.WebKit.PlatformPlugin/1.9")
#endif
QT_END_NAMESPACE
Upvotes: 1