【发布时间】:2019-11-15 10:34:13
【问题描述】:
如何在QWebEngineView 中通过 C++ 忽略和启用/禁用 SSL 证书错误?发现QWebEnginePage有虚拟方法certificateError但是不能通过QWebEngineView访问?
【问题讨论】:
标签: c++ qt5 qwebengineview
如何在QWebEngineView 中通过 C++ 忽略和启用/禁用 SSL 证书错误?发现QWebEnginePage有虚拟方法certificateError但是不能通过QWebEngineView访问?
【问题讨论】:
标签: c++ qt5 qwebengineview
我现在的解决方案是从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);
【讨论】: