直接加载放在exe同级目录下的资源是不行的,需要把资源通过qrc放到exe里面,然后通过类似qrc:/robotHtml/index.html
这样的路径加载才行。
mWebView = new QWebEngineView(parent);
// mWebView->load(QUrl::fromLocalFile("./robotHtml/index.html"));
// mWebView->load(QUrl("http://www.baidu.com"));
mWebView->load(QUrl("qrc:/robotHtml/index.html"));
// mWebView->show();
运行网页中包含的脚本,还可以取得返回值。
QString cmd = QString("ctrlFuns[0](%1, %2)").arg(0).arg(val);
mWebView->page()->runJavaScript(cmd);
可能遇到的问题
可能对于包含进来的第三方js脚本,Qt可能会将其语法识别错误,从而无法顺利将本体exe编译。这时可以修改一下.js的后缀,绕过Qt的检查就行。
对应的html文件中也要做相应的修改。
不用这样操作,正确的操作为在pro文件中添加跳过编译qrc文件的操作:
【QT+ECharts实现绘图】、【Deploying Qt WebEngine Applications】
QTQUICK_COMPILER_SKIPPED_RESOURCES += resources/my_resource.qrc
## 或者
#CONFIG -= qtquickcompiler