()
| 70 | |
| 71 | // 单例锁 |
| 72 | async checkApp() { |
| 73 | // E2E 测试模式:绕过单实例锁以支持并行实例 |
| 74 | const isTestMode = process.env.TEST_MODE === 'true' |
| 75 | if (isTestMode) { |
| 76 | return true |
| 77 | } |
| 78 | |
| 79 | if (!app.requestSingleInstanceLock()) { |
| 80 | app.quit() |
| 81 | // 未获得锁 |
| 82 | return false |
| 83 | } |
| 84 | // 聚焦到当前程序 |
| 85 | else { |
| 86 | app.on('second-instance', () => { |
| 87 | if (this.mainWindow) { |
| 88 | this.mainWindow.show() |
| 89 | if (this.mainWindow.isMinimized()) this.mainWindow.restore() |
| 90 | this.mainWindow.focus() |
| 91 | } |
| 92 | }) |
| 93 | // 获得锁 |
| 94 | return true |
| 95 | } |
| 96 | } |
| 97 | |
| 98 | // 初始化程序 |
| 99 | async init() { |