我正在使用https,如果使用的是自签名证书,我想提示用户是否要导入所需的证书。 (实际上,浏览器在加载没有可信证书的页面时会做同样的事情)
我发现电子中有一个函数{
"Active": false,
"Name": "Your name"
}
可以正常工作。我想在出现dialog.showCertificateTrustDialog([browserWindow, ]options, callback)
的情况下使用它。
类似这样的东西:
certificate-error
但是我不知道如何进行app.on('certificate-error', (event, webContents, url, error, certificate, callback) => {
dialog.showCertificateTrustDialog({certificate:certificate, message: "some msg"},
() => {
if (was certificate ok) {
event.preventDefault();
callback(true);
}
else {
callback(false);
}
}
);
});
部分
有可能吗?还是我必须例如再次加载页面才能显示它?如果我在导入证书后运行该应用程序,则可以正常运行。否则,我只会得到一个空白窗口。
感谢您的帮助,谢谢
答案 0 :(得分:0)
当前,我已决定使用以下解决方案,但在我看来,它更像是一种黑客。在再次调用showCertificateTrustDialog函数之后,我尝试再次加载页面,但是如果再次抛出certificate-error
,我将忽略它。我仍然对其他解决方案持开放态度,因为我不喜欢这个解决方案
let certificateErrorRetry = false;
app.on('certificate-error', (event, webContents, url, error, certificate, callback) => {
certificateErrorRetry = !certificateErrorRetry;
if (certificateErrorRetry) {
const {dialog} = require('electron');
dialog.showCertificateTrustDialog({certificate: certificate, message: "some msg" }, () => {
myapp.win.loadURL(url);
});
}
else { show some error }
});