qt - 如何在运行时确定 QtWebEngine 在 Qt 5 中使用哪个 Chrome 版本?

标签 qt qt5 chromium qtwebengine

我在 Qt 5 中找不到任何函数来确定 QtWebEngine 使用哪个 Chrome 版本| .

我不想在我的代码中对 Chromium 版本进行硬编码,因为我经常更新我的应用程序,并且 Chromium 版本通常在每个版本中都会更改。而且 Qt 是向后兼容的,可以在不更新我的应用程序的情况下更新它。

最佳答案

没有直接的解决办法,只能看 the source code可以看到它是用来设置默认用户代理的:

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;

输出:
Qt version: 5.14.2 chromium version: 77.0.3865.129

关于qt - 如何在运行时确定 QtWebEngine 在 Qt 5 中使用哪个 Chrome 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62111129/

相关文章:

visual-c++ - Visual C++ 2017 + Qt5 - 无法在 Qt 项目设置中启用 webkit

c++ - 我如何在 Qt 中使用 QRegularExpression

c++ - QT 中的 json 解析器

android - 如何在 Qt 中使用 Google-Cloud-Messaging API

c++ - QObject 派生类有哪些要求?

c++ - 如何制作多语言QT UI应用程序?

c++ - Ubuntu Qmake 不是可执行文件

ios - 文件 libswiftCore.dylib 没有正确的代码签名

google-chrome - HTML5视频标签,javascript检测播放状态?

c++ - 无法在 Visual Studio 2010 中加载 libcef 符号