umbrella22

修改已废弃的api

......@@ -68,13 +68,38 @@ class MainInit {
if (process.env.NODE_ENV === 'development') {
this.mainWindow.webContents.openDevTools({ mode: 'undocked', activate: true })
}
// 当确定渲染进程卡死时
this.mainWindow.webContents.on('crashed', () => {
// 当确定渲染进程卡死时,分类型进行告警操作
app.on('render-process-gone', (event, webContents, details) => {
const message = {
title: "",
buttons: [],
message: '',
}
switch (details.reason) {
case 'crashed':
message.title = "警告"
message.buttons = ['确定', '退出']
message.message = "图形化进程崩溃,是否进行软重启操作?"
break;
case 'killed':
message.title = "警告"
message.buttons = ['确定', '退出']
message.message = "由于未知原因导致图形化进程被终止,是否进行软重启操作?"
break;
case 'oom':
message.title = "警告"
message.buttons = ['确定', '退出']
message.message = "内存不足,是否软重启释放内存?"
break;
default:
break;
}
dialog.showMessageBox(this.mainWindow, {
type: 'warning',
title: '警告',
buttons: ['重载', '退出'],
message: '图形化进程失去响应,是否等待其恢复?',
title: message.title,
buttons: message.buttons,
message: message.message,
noLink: true
}).then(res => {
if (res.response === 0) this.mainWindow.reload()
......@@ -94,23 +119,58 @@ class MainInit {
else this.mainWindow.close()
})
})
app.on('gpu-process-crashed', () => {
/**
* 新的gpu崩溃检测,详细参数详见:http://www.electronjs.org/docs/api/app
* @returns {void}
* @author zmr (umbrella22)
* @date 2020-11-27
*/
app.on('child-process-gone', (event, details) => {
const message = {
title: "",
buttons: [],
message: '',
}
switch (details.type) {
case 'GPU':
switch (details.reason) {
case 'crashed':
message.title = "警告";
message.buttons = ['确定', '退出'];
message.message = "硬件加速进程已崩溃,是否关闭硬件加速并重启?";
break;
case 'killed':
message.title = "警告";
message.buttons = ['确定', '退出'];
message.message = "硬件加速进程被意外终止,是否关闭硬件加速并重启?";
break;
default:
break;
}
break;
default:
break;
}
dialog.showMessageBox(this.mainWindow, {
type: 'warning',
title: '',
buttons: ['切换', '退出'],
message: '侦测到图形处理设备丢失,若继续则会导致软件出现意外故障,是否切换到通用模式,若切换后仍然黑屏请联系我们。',
title: message.title,
buttons: message.buttons,
message: message.message,
noLink: true
}).then(res => {
// 当显卡出现崩溃现象时使用该设置禁用显卡加速模式。
if (res.response === 0) {
app.disableHardwareAcceleration()
if (details.type === 'GPU') app.disableHardwareAcceleration();
this.mainWindow.reload()
} else {
this.mainWindow.close()
}
})
})
app.on('gpu-process-crashed', () => {
})
this.mainWindow.on('closed', () => {
this.mainWindow = null
})
......
......@@ -36,6 +36,7 @@
<el-button type="primary" round @click="getMessage"
>查看消息</el-button
>
<el-button type="primary" round @click="crash">模拟崩溃</el-button>
</div>
<div class="doc">
<el-button type="primary" round @click="openNewWin"
......@@ -168,6 +169,10 @@ export default {
});
},
methods: {
crash() {
process.crash();
// process.hang()
},
openNewWin() {
let data = {
url: "/form/index",
......