在21年末遇到公司遇到一个比较奇葩的bug,electron开发客户端在进行自动升级时中途闪退没有任何日志。
经仔细观察,是在新包下载完后对老版本包进行替换的时候闪退,无意中发现在这一过程里,任务管控器里有两个应用进程,猜想是旧的任务没有完全退出进程,于是查阅api,对关于退出任务、进程、关闭窗口的api进行组合测试,最终总结了一套解决方案~
如下代码:
ipcMain.on('isUpdateNow', (e, arg) => {
//console.log("开始更新");
//some code here to handle event
//重点是以下几行代码,顺序不要乱
mainWindow.webContents.send('quit');
autoUpdater.quitAndInstall();
if(mainWindow&&mainWindow.destroy){
mainWindow.destroy();
}
app.quit();
});
版权声明:本文为qq_41293573原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。