如何编译qtwebkit插件?

How to compile qtwebkit plugins?

QtWebkit-plugins is a library that provides features to the QWebView, eg SpellCheck and Notification Web API.

Read about:

我尝试编译 Windows 中的代码,但我的 QWebView 没有按预期工作,换句话说,SpellCheck and Notification Web API 没有工作。就像我一直没有使用 QtWebkit-plugins。哪个可以?

在文档中说要编译我必须 运行:

$ qmake
$ make && make install

QtWebkit-plugins repository

中阅读更多内容

我使用的是 mingw,而不是 make 我使用的是 mingw32-make:

之后,我编译了另一个使用 QWebView 的简单项目,然后在 <textarea spellcheck="true"></textarea> 中测试了 SpellCheck,但没有成功。

我测试了 Notification Web API 也没有用。

注意:当运行在我的项目中使用QT_DEBUG_PLUGINS=1并在应用程序输出选项卡中使用Notification Web API(在 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

在我看来 dll 已加载,只是无法正常工作。

我的项目如何使用这些功能?

对于 QT-5.2+ 中的这项工作,有必要修改 qwebkitplatformplugin.h 文件

改变这个:

QT_BEGIN_NAMESPACE
Q_DECLARE_INTERFACE(QWebKitPlatformPlugin, "com.nokia.Qt.WebKit.PlatformPlugin/1.9");

由此:

QT_BEGIN_NAMESPACE
Q_DECLARE_INTERFACE(QWebKitPlatformPlugin,
    "org.qt-project.Qt.WebKit.PlatformPlugin/1.9");

如果需要与 QT-4.8 的兼容性,请为此更改代码:

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