如何使用 QWebEngineView 忽略 SSL 证书错误
How to ignore SSL certificate errors with QWebEngineView
如何在 QWebEngineView? I found that QWebEnginePage has the virtual method certificateError 中通过 C++ 忽略和 enable/disable SSL 证书错误,但无法通过 QWebEngineView 访问它?
我现在的解决方案是派生自QWebEnginePage, overwrite the method certificateError and pass an instance of the derived class to QWebEngineView with a call of setPage。如果有人感兴趣,这里有一个例子。
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? I found that QWebEnginePage has the virtual method certificateError 中通过 C++ 忽略和 enable/disable SSL 证书错误,但无法通过 QWebEngineView 访问它?
我现在的解决方案是派生自QWebEnginePage, overwrite the method certificateError and pass an instance of the derived class to QWebEngineView with a call of setPage。如果有人感兴趣,这里有一个例子。
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);