我在 Qt 5 中找不到任何函数来确定使用哪个 chromium 版本QtWebEngine
.
我不想在代码中硬编码 chromium 版本,因为我经常更新我的应用程序,并且每个版本中的 chromium 版本通常都会更改。而且 Qt 是向后兼容的,可以在不更新我的应用程序的情况下更新它。
没有直接的解决方案,但看看源代码 https://code.qt.io/cgit/qt/qtwebengine.git/tree/src/core/content_browser_client_qt.cpp#n1036可以看到它是用来设置默认用户代理的:
std::string ContentBrowserClientQt::getUserAgent()
{
// Mention the Chromium version we're based on to get passed stupid UA-string-based feature detection (several WebRTC demos need this)
return content::BuildUserAgentFromProduct("QtWebEngine/" QTWEBENGINECORE_VERSION_STR " Chrome/" CHROMIUM_VERSION);
}
因此可以从该数据中提取:
QString version;
QString user_agent = QWebEngineProfile::defaultProfile()->httpUserAgent();
for(const QString & text : user_agent.split(" ")){
if(text.startsWith(QStringLiteral("Chrome/"))){
version = text.mid(QStringLiteral("Chrome/").length());
}
}
qDebug().noquote()<< "Qt version:" << QT_VERSION_STR << "chromium version:" << version;
Output:
Qt version: 5.14.2 chromium version: 77.0.3865.129
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)