如何使用 QWebEngineView 忽略 SSL 证书错误

Posted

技术标签:

【中文标题】如何使用 QWebEngineView 忽略 SSL 证书错误【英文标题】:How to ignore SSL certificate errors with QWebEngineView 【发布时间】:2019-11-15 10:34:13 【问题描述】:

如何在QWebEngineView 中通过 C++ 忽略和启用/禁用 SSL 证书错误?发现QWebEnginePage有虚拟方法certificateError但是不能通过QWebEngineView访问?

【问题讨论】:

【参考方案1】:

我现在的解决方案是从QWebEnginePage 派生,覆盖方法certificateError 并通过调用setPage 将派生类的实例传递给QWebEngineView。如果有人感兴趣,这里是一个示例。

webpage.h

#ifndef WEBPAGE_H
#define WEBPAGE_H

#include <QWebEnginePage>

class WebPage : public QWebEnginePage

    Q_OBJECT

public:
    explicit WebPage(QWidget *parent = 0);

protected:
    bool certificateError(const QWebEngineCertificateError &error) override;
;

#endif // WEBPAGE_H

webpage.cpp

#include "webpage.h"

WebPage::WebPage(QWidget *parent) :
    QWebEnginePage(parent)



bool WebPage::certificateError(const QWebEngineCertificateError &error)

    // TODO: conditional treatment
    return error.isOverridable();

用法:

auto webView = new QWebEngineView(this);
auto webPage = new WebPage(this);
webView->setPage(webPage);

【讨论】:

以上是关于如何使用 QWebEngineView 忽略 SSL 证书错误的主要内容,如果未能解决你的问题,请参考以下文章

如何在 QWebEngineView 周围显示边框?

如何使用 QWebEngineView 和 qtwebchannel.js 逐步加载 javascript?

如何在使用 QWebEngineView 'loadFinished' 加载页面后立即更改 html 元素?

QWebEngineView使用

如何将 swf 文件从内存加载到 QWebEngineView

如何从 QWebEngineView 打印