在 Electron 中,app 模块是一个主要的模块,负责控制应用程序的生命周期、管理应用程序的各种事件,并提供一些全局的应用程序级别的配置。

以下是一些 app 模块的常用功能和事件:

1. 应用程序生命周期事件:

   - ready: 当 Electron 应用程序完成基础的初始化后,会触发 ready 事件。通常在这个事件中创建主窗口。
     const { app, BrowserWindow } = require('electron');

     app.on('ready', () => {
       const mainWindow = new BrowserWindow({ width: 800, height: 600 });
       mainWindow.loadFile('index.html');
     });

   - window-all-closed: 当所有窗口都关闭时触发。在 macOS 中,通常应用程序会保持激活状态,直到用户显式地退出。
     app.on('window-all-closed', () => {
       if (process.platform !== 'darwin') {
         app.quit();
       }
     });

   - activate: 在应用程序被激活时(例如点击 macOS dock 上的应用图标),触发 activate 事件。通常在这里重新创建主窗口。
     app.on('activate', () => {
       if (BrowserWindow.getAllWindows().length === 0) {
         createWindow();
       }
     });

2. 获取应用程序的基本信息:
   const { app } = require('electron');

   console.log(app.getName());      // 获取应用程序名称
   console.log(app.getVersion());   // 获取应用程序版本
   console.log(app.getPath('userData'));  // 获取用户数据目录

3. 配置应用程序的行为:
   const { app } = require('electron');

   app.setAppUserModelId('com.example.myapp');  // 设置应用程序的用户模型 ID
   app.setAsDefaultProtocolClient('myapp');      // 设置应用程序作为某个协议的默认处理程序

4. 处理应用程序退出事件:
   const { app } = require('electron');

   app.on('before-quit', (event) => {
     // 在应用程序退出前执行一些操作
     // 可以通过 event.preventDefault() 来阻止应用程序退出
   });

   app.on('will-quit', () => {
     // 在应用程序退出时执行一些操作
   });

   app.on('quit', (event, exitCode) => {
     // 在应用程序已退出后执行一些操作
   });

这只是 app 模块的一小部分功能和事件。通过 app 模块,你可以控制应用程序的整个生命周期,实现一些全局配置,并处理与应用程序退出相关的事件。详细的文档可以在 Electron 官方文档的 [app 模块部分](https://www.electronjs.org/docs/api/app) 找到。


转载请注明出处:http://www.pingtaimeng.com/article/detail/10915/Electron