app 模块

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('所有窗口都退出');
}) 
有些事件只能在特定的操作系统下才会生效的,这点要注意,更多信息请查看官方文档

常用方法

  1. app.quit():退出应用程序。调用此方法将触发应用程序的生命周期事件,允许进行清理任务和保存状态。
  2. app.exit(exitCode):立即终止应用程序,并可指定退出代码。可以在应用程序需要立即退出时进行处理。
  3. app.relaunch(options):重新启动应用程序。可以在应用程序重新启动之前执行清理任务或设置选项。
  4. app.isReady():检查应用程序是否已准备好创建浏览器窗口。返回一个布尔值,指示应用程序的就绪状态。
  5. app.whenReady():返回一个 Promise,当应用程序准备好创建浏览器窗口时解析。可以使用 async/await.then() 来等待应用程序就绪后执行其他任务。
  6. app.focus():将应用程序窗口置于前台并获取焦点。
  7. app.hide():隐藏应用程序的所有窗口。
  8. app.show():显示应用程序的所有窗口。
  9. app.setBadgeCount(count):在应用程序的 Dock 图标上显示一个小红圈,用于表示未读消息或通知的数量。
  10. app.dock.hide():在 macOS 中隐藏应用程序的 Dock 图标。
  11. app.dock.show():在 macOS 中显示应用程序的 Dock 图标。
  12. app.setLoginItemSettings(settings):配置应用程序的登录项设置,用于在用户登录时自动启动应用程序。

这只是一些常见的方法示例,app 模块还提供了其他许多方法,用于处理应用程序的窗口、会话、文件关联、协议处理等。你可以根据自己的需求查阅 Electron 的官方文档来了解更多关于 app 模块的方法和详细用法。

参考文档:https://www.electronjs.org/zh/docs/latest/api/app

Last modification:March 26, 2024
如果觉得我的文章对你有用,请随意赞赏