開發環境: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外其他圖片文件時,需要保護相應的圖片插件動態庫