当第二个实例被执行并且调用 app.requestSingleInstanceLock() 时,这个事件将在你的应用程序的首个实例中触发
const gotTheLock = app.requestSingleInstanceLock()
if (!gotTheLock) {
app.quit()
} else {
app.on('second-instance', (event, commandLine, workingDirectory) => {
// 当运行第二个实例时,将会聚焦到mainWindow这个窗口
if (win) {
if (win.isMinimized()) win.restore()
win.focus()
win.show()
}
})
}
function createWindow() {
if (!gotTheLock) {
return;
}
win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
devTools: false,//是否开启调试
nodeIntegration: true,//是否启用Node integration
contextIsolation: false,//是否在独立 JavaScript 环境中运行 Electron API和指定的preload 脚本
}
})
if (process.env.WEBPACK_DEV_SERVER_URL) {
win.loadURL(process.env.WEBPACK_DEV_SERVER_URL)
if (!process.env.IS_TEST) win.webContents.openDevTools()
} else {
createProtocol('app')
win.loadURL('app://./index.html')
}
win.on('closed', () => {
win = null
})
}