2014-01-22 140 views
0
#include "mainwindow.h" 
#include <QApplication> 
#include <QtWebKit> 
#include <QWebView> 

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 
    QWebView *view = new QWebView(); 
    QWebSettings::PluginsEnabled; 
    view->load(QUrl("http://www.paulirish.com/demo/multi")); 

    view->show(); 

    return a.exec(); 
} 

我试图在QtWebkit Webview中加载插件,但未加载。我找不到正确的路径Here,但它没有加载。我已添加Env。变量QTWEBKIT_PLUGIN_PATH到系统变量& MOZ_PLUGIN_PATH已经在用户变量中,由福昕阅读器添加。我试着将这个插件的dll文件放在两个对应Env的目录中。变量,但它不是加载插件。当我在Moz_plugin_path中触发插件后,firefox能够检测到插件。Qt5 WebKit未检测到NPAPI插件

作为用于使该插件在QTWebview我已经使用

QWebSettings :: PluginsEnabled尝试; QWebSettings :: globalSettings() - > setAttribute(QWebSettings :: PluginsEnabled,true);

view-> page() - > settings() - > PluginsEnabled;

,但发现他们没有成功,我使用的是Windows 8.1和Qt 5.2

回答

1

应设置QWebSettings::PluginsEnabled属性。你这样做的方式,什么都没有发生。

启用与下面的代码属性:

QWebSettings::globalSettings()->setAttribute(QWebSettings::PluginsEnabled, true); 

QWebView创建之前将这个。

参考文档了解更多信息:

QWebSettings Docs

+0

不能不工作。正如我在问题中提到的,我尝试了三种启用插件的方法。试了一遍,在qWebView创建之前放置属性:( –

+0

Btw如果插件试图访问网络连接,它将能够正确的?因为它是一个插件,做它自己的事情 我试图使用的插件是TUIO客户端,TUIO客户端将消息发送到端口,并从中侦听。 默认情况下启用了Javascript? 试过了Docs,但它不是很有帮助,在那里提到的所有内容都是 –

+0

是的,插件将能够访问网络连接AFAIK,Javascript是默认启用的,特别是在QtWebKit 5.2模块中的所有改变之后。你是否尝试启用页面级别的插件?('view-> page() - > settings() - > setAttribute (QWebSettings :: PluginsEnabled,true);'? –

0

我经历过一模一样的情况。解决我的问题是为NPAPI安装Adobe Flash Player插件。像Google Chrome和Firefox这样的现代网络浏览器通常会使用内置的Flash播放器插件进行发布。因此Chrome/Firefox运行良好并不能确保您在系统范围内正确安装了正确的Flash插件,Qt5WebKit需要该插件来支持Flash内容的本地插件。

所以,确保安装了NPAPI的Adobe Flash Player插件,并希望它能解决您的问题。