切换导航条
切换导航条
当前项目
正在载入...
登录
术习电报
/
electron-vue-template
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
构建
提交
问题看板
文件
提交
网络
比较
分支
标签
作者
umbrella22
2020-11-27 16:17:37 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
提交
ad8407fa67a285ec5129f72f6f8ffb8c249d3be9
ad8407fa
1 个父辈
358cb41c
修改已废弃的api
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
75 行增加
和
10 行删除
src/main/services/windowManager.ts
src/renderer/components/LandingPage.vue
src/main/services/windowManager.ts
查看文件 @
ad8407f
...
...
@@ -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
})
...
...
src/renderer/components/LandingPage.vue
查看文件 @
ad8407f
...
...
@@ -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",
...
...
请
注册
或
登录
后发表评论