发布时间:2023-05-13 文章分类:WEB开发, 电脑百科 投稿人:王小丽 字号: 默认 | | 超大 打印

1. 问题描述

使用Electron打包web项目为桌面应用程序,由于运行环境的硬件条件或其他一些原因,导致程序运行过程中黑屏、白屏、崩溃。

2. 解决过程

2.1 依赖版本:

2.2 运行环境

win7 x86

2.3 分析过程

2.3.1 排除

程序本身运行不会“白屏”,但运行长时间后,会偶尔出现“白屏”情况,重启程序,可以正常显示。故而排除开发的程序本身存在严重问题的可能,转而从白屏的现象本身寻找思路。

2.3.2 寻找规律

2.3.2 寻找解决方法

// 测试一下是否可以捕捉到崩溃的状态
app.on("renderer-process-crashed", function (event, webContents, details) {
    console.error("renderer-process-crashed catched.");
});
app.on("renderer-process-crashed", function (event, webContents, details) {
    // 输出一下捕捉到的reason,实际可以根据不同的“原因”进行具体处理
    console.error("renderer-process-crashed, reason => ", JSON.stringify(details));
    // 基于我在开发的程序本身的设定,此处重启应用就可以了
    app.relaunch({args: process.argv.slice(1).concat(['--relaunch'])});
    // 尝试关闭所有窗口
    app.quit();
});

3. 针对上文中内容的一些说明

3.1 renderer-process-crashed

返回:

参考Electron官方API文档 https://www.electronjs.org/zh/docs/latest/api/app#%E4%BA%8B%E4%BB%B6-render-process-gone

3.2 electron-log

参考electron-loggithub https://github.com/megahertz/electron-log/