我正在构建一个电子应用程序,如果发生崩溃,必须重新加载渲染过程窗口。
目前我可以从主进程重启应用
app.relaunch();
app.quit();
但我无法检测到窗口崩溃。我尝试使用
win.on('unresponsive', () => { ... } );
但是当我使进程崩溃时,事件并没有生成。
我尝试的进程崩溃:
- 调用
process.crash()
- 使用所有可用的内存。
这两种方法都成功地使进程崩溃,但同样,我无法找到检测它的方法。
我还尝试在渲染进程中使用window.onerror(...)
,并在检测到崩溃时通过IPC向主进程发送消息,但这似乎不起作用。
2条答案
按热度按时间6jjcrrmo1#
您应该在webContents中查找“crashed”事件。请查看https://electronjs.org/docs/api/web-contents#event-crashed
例如,在main process中添加如下内容:
shstlldc2#
也许看看“pm2-windows-service”,它可以将您的应用程序安装为windows服务,并观察它是否崩溃,重新启动它
https://www.npmjs.com/package/pm2-windows-service
电子也有应用程序。**setLoginItemSettings({ openAtLogin:true });**但这并不防止崩溃,只提供在Windows登录时自动启动应用程序