若是咱们不进行任何设置的话,那么咱们的程序就会出现多个实例的状况,以下图。git
苏南大叔也写过一篇文章,介绍了两种方式。有兴趣的能够看一下。 https://newsn.net/say/electron-single-instance-lock.htmlgithub
咱们用包都是最新的,因此直接用Electron4 自带的方式,解决单实例问题便可。app
核心代码:electron
const gotTheLock = app.requestSingleInstanceLock() if (!gotTheLock) { app.quit() } else { app.on('second-instance', (event, commandLine, workingDirectory) => { // 当运行第二个实例时,将会聚焦到myWindow这个窗口 if (mainWindow) { if (mainWindow.isMinimized()) mainWindow.restore() mainWindow.focus() } }) // 建立 myWindow, 加载应用的其他部分, etc... app.on('ready', () => { createWindow() }) }
你还能够经过app.hasSingleInstanceLock()
判断是否有单一锁,经过app.releaseSingleInstanceLock()
释放全部的锁,并容许多实例再次运行。ui