如何使用 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 和 qtwebchannel.js 逐步加载 javascript?
如何在使用 QWebEngineView 'loadFinished' 加载页面后立即更改 html 元素?