如何创建Electron应用程序的单个示例?如果它已经在托盘中运行,用户再次启动它,如何从托盘中打开正在运行的应用程序,而不是启动一个新的?
gopyfrb31#
谢谢!我在docs中找到了这个,https://electronjs.org/docs/api/app#apprequestsingleinstancelock:
const { app } = require('electron') let myWindow = null const gotTheLock = app.requestSingleInstanceLock() if (!gotTheLock) { app.quit() } else { app.on('second-instance', (event, commandLine, workingDirectory) => { // Someone tried to start a second instance, focus our window. if (myWindow) { if (myWindow.isMinimized()) myWindow.restore() myWindow.focus() } }) // Create myWindow, load the rest of the application, etc. app.on('ready', () => { }) }
bd1hkmkf2#
使用app.makeSingleInstance(),确保用户不会打开多个electron示例。一旦你分享了你的代码,我会做一个编辑来告诉你如何正确地实现它。
app.makeSingleInstance()
var shouldQuit = app.makeSingleInstance(function(commandLine, workingDirectory) { // Someone tried to run a second instance, we should focus our window. if (myWindow) { if (myWindow.isMinimized()) myWindow.restore(); myWindow.focus(); } });
2条答案
按热度按时间gopyfrb31#
谢谢!我在docs中找到了这个,https://electronjs.org/docs/api/app#apprequestsingleinstancelock:
bd1hkmkf2#
使用
app.makeSingleInstance()
,确保用户不会打开多个electron示例。一旦你分享了你的代码,我会做一个编辑来告诉你如何正确地实现它。