开发环境:win10家庭中文版,vs2013,qt5.5.1
目的:使用webkit加载web页面代码如下:
#include
#include
#ifdef _DEBUG#pragma comment(lib, "Qt5WebKitWidgetsd.lib")
#pragma comment(lib, "Qt5WebKitd.lib")
#else
#pragma comment(lib, "Qt5WebKitWidgets.lib")
#pragma comment(lib, "Qt5WebKit.lib")
#endifm_WebView = new QWebView(this);
QWebSettings * settings = m_WebView->settings();
QWebSettings::globalSettings();
settings->setAttribute(QWebSettings::PluginsEnabled, true);
settings->setAttribute(QWebSettings::JavaEnabled, true);
settings->setAttribute(QWebSettings::JavascriptEnabled, true);
settings->setAttribute(QWebSettings::JavascriptCanOpenWindows, true);
settings->setAttribute(QWebSettings::JavascriptCanAccessClipboard, true);
settings->setAttribute(QWebSettings::DeveloperExtrasEnabled, true);
settings->setAttribute(QWebSettings::SpatialNavigationEnabled, true);
settings->setAttribute(QWebSettings::LinksIncludedInFocusChain, true);
settings->setAttribute(QWebSettings::AcceleratedCompositingEnabled, true);
settings->setAttribute(QWebSettings::AutoLoadImages, true);
编译程序,使用dependency检测依赖动态库库,然后启动程序,加载网页一切正常,当加载视频和音频时出现异常,腾讯视频出现图1所示情况,爱奇艺 和优酷视频出现情况如图2,经过各种尝试,最终发现需要在exe同级目录下放置plugins文件夹,文件夹底下放置flash动态库 (NPSWF32.dll),或者自己下载一个动态库安装,这个动态库是firefox的flash player,测试结果如图3
上图3中的测试结果是在win7虚拟机上测试结果,win10上安装firefox的flash插件测试结构和上图一样
顺道说句:QT插件库(新增库,路径必须正确),根据不同的程序,需要不同的插件库例如:1、使用QMediaPlayer需要添加plugins目录下的mediaservice文件夹下的动态库2、使用除png外其他图片文件时,需要保护相应的图片插件动态库