javascript - 重新启动 Electron 应用程序的正确方法是什么?
问题描述
在此 Electron 文档页面中,他们建议重新启动应用程序,应该执行app.quit
或app.exit
在调用之后执行app.relaunch
:
注意,该方法执行时不会退出应用,需要在调用app.relaunch后调用app.quit或app.exit才能让应用重启。
然而,经过试验,我发现顺序似乎并不重要。(请参阅下面的示例。)
我知道这一点app.quit
,app.exit
但并不完全相同。前者可以被中断并触发一些事件,而后者将强制应用退出而不触发任何事件或允许应用取消操作。
问题:假设强制应用程序退出总是可以的,并且在应用程序退出之前我们没有任何任务要执行,是否存在:
- 一个喜欢
app.quit
或的理由app.exit
? - 一个人必须奔跑
app.quit
或app.exit
追赶的原因app.relaunch
?
这是一个非常简单的 Electron 应用程序:
包.json
{
"name": "burrito",
"version": "1.0.0",
"main": "main.js",
"scripts": {
"start": "electron ."
},
"devDependencies": {
"electron": "^4"
}
}
main.js
const {app, BrowserWindow, Menu} = require('electron');
let mainWindow;
app.on('ready', () => {
Menu.setApplicationMenu(
Menu.buildFromTemplate([
{role: 'appMenu', submenu: [
{label: 'relaunch(); exit()', click() {
app.relaunch();
app.exit();
}},
{label: 'relaunch(); quit()', click() {
app.relaunch();
app.quit();
}},
{type: 'separator'},
{label: 'exit(); relaunch()', click() {
app.exit();
app.relaunch();
}},
{label: 'quit(); relaunch()', click() {
app.quit();
app.relaunch();
}}
]}
])
);
mainWindow = new BrowserWindow({width: 640, height: 480});
mainWindow.loadFile('index.html');
});
生成以下应用程序菜单:
单击任何菜单项将产生相同的结果:应用程序退出然后重新启动。
解决方案
推荐阅读
- javascript - 如何“反转格式”
- linux - 如何使用 bash 脚本从 base64 转换的文件中播放声音?
- java - 将组件添加到 JTabbedPane
- python - Python 无法导入 pmdarima ARIMA 函数
- node.js - VueJS - 用于构建的 vue.config.js 代理配置
- mysql - 将 SQL Server DATETIMEOFFSET 转换为 mySQL DateTime
- python - 如何修复“ValueError:零大小数组到没有标识的归约操作 fmin”
- ruby - Rubygems 指向 macOS 上的未知目录
- javascript - 如何检查值是否与导入的类名相同
- android - 将 android Facebook SDK 添加到项目后的 java.lang.NoClassDefFoundError 和 ClassNotFoundException