app 模块是主进程的模块,它提供了与应用程序的生命周期管理和操作相关的功能。通过 app 模块,开发者可以控制应用程序的启动、退出以及在不同阶段执行特定的任务。
常用事件
在 app
模块中,有很多内置的事件,这些事件和我们在其它应用开发中的生命周期函数的左右有点类似,通过监听这些特定的事件,我们可以实现在不同阶段执行特定的任务。我们可以使用app.on()
方法监听事件, 比较常见的事件有:
ready
:当 Electron 完成初始化并准备好创建浏览器窗口时触发。这是应用程序的启动点,可以在此事件中创建主窗口和执行其他初始化任务。before-quit
:当应用程序开始退出但在关闭所有窗口之前触发。可以在此事件中执行清理任务或向用户确认退出。will-quit
:当应用程序将要退出时触发。quit
:当应用程序退出时触发。在此事件中执行最终的清理任务或保存状态。window-all-closed
:当所有应用程序的窗口都被关闭时触发。
const { app, BrowserWindow } = require('electron')
app.on('ready', () => {
console.log('应用程序初始化已完成');
new BrowserWindow({ width: 800, height: 600 })
})
app.on('before-quit', () => {
console.log('应用程序开始退出');
})
app.on('will-quit', () => {
console.log('应用程序即将退出');
})
app.on('quit', () => {
console.log('应用程序退出');
})
app.on('window-all-closed', () => {
console.log('所有窗口都退出');
})
有些事件只能在特定的操作系统下才会生效的,这点要注意,更多信息请查看官方文档
常用方法
app.quit()
:退出应用程序。调用此方法将触发应用程序的生命周期事件,允许进行清理任务和保存状态。app.exit(exitCode)
:立即终止应用程序,并可指定退出代码。可以在应用程序需要立即退出时进行处理。app.relaunch(options)
:重新启动应用程序。可以在应用程序重新启动之前执行清理任务或设置选项。app.isReady()
:检查应用程序是否已准备好创建浏览器窗口。返回一个布尔值,指示应用程序的就绪状态。app.whenReady()
:返回一个Promise
,当应用程序准备好创建浏览器窗口时解析。可以使用async/await
或.then()
来等待应用程序就绪后执行其他任务。app.focus()
:将应用程序窗口置于前台并获取焦点。app.hide()
:隐藏应用程序的所有窗口。app.show()
:显示应用程序的所有窗口。app.setBadgeCount(count)
:在应用程序的 Dock 图标上显示一个小红圈,用于表示未读消息或通知的数量。app.dock.hide()
:在 macOS 中隐藏应用程序的 Dock 图标。app.dock.show()
:在 macOS 中显示应用程序的 Dock 图标。app.setLoginItemSettings(settings)
:配置应用程序的登录项设置,用于在用户登录时自动启动应用程序。
这只是一些常见的方法示例,app 模块还提供了其他许多方法,用于处理应用程序的窗口、会话、文件关联、协议处理等。你可以根据自己的需求查阅 Electron 的官方文档来了解更多关于 app 模块的方法和详细用法。