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

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

【问题讨论】:

    标签: c++ qt5 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-17
      • 1970-01-01
      • 1970-01-01
      • 2019-09-05
      • 2019-09-02
      • 2015-04-22
      • 1970-01-01
      相关资源
      最近更新 更多