QWebEngineView如何忽略SSL证书问题(Qt6.2.4)
QWebEngineView忽略SSL证书问题
最近使用QWebEngineView遇到一些证书不信任方面的问题,导致网页加载不出来,使用浏览器时同样会出现不信任的界面,但是选择继续访问还是可以正常加载的。如下图:
网上教程
网上百度出来的教程,全部都是6.0之前版本的:修改QWebEnginePage的虚函数certificateError
QWebEnginePage:virtual bool certificateError(const QWebEngineCertificateError &certificateError)
此方法返回true则忽略此错误;
但是Qt6.2.4版本中,这个方法已经不再是虚函数,而变成了一个信号;
Qt6.2.4版本的解决办法
最终博主去阅读官方文档,看到这个信号的方式也提供了忽略错误的方法。
Qt6.2.4版本中需要绑定certificateError信号,然后在槽函数中决定此错误是否要继续加载网页,槽函数如下:
void WebPage::onCertificateError(const QWebEngineCertificateError &certificateError)
{
if(certificateError.type()==QWebEngineCertificateError::CertificateAuthorityInvalid)
{
auto error=const_cast<QWebEngineCertificateError&>(certificateError);
error.acceptCertificate();
}
}
acceptCertificate()接口即代表忽略错误,继续加载网页。
以上办法可以解决证书方面的一些错误,特此记录,以免后续忘记。