【发布时间】:2020-03-28 08:42:48
【问题描述】:
我想为我的电子应用程序强制执行单一实例。当用户单击 Windows 上的应用程序快捷方式图标时,我想强制执行单个实例,但在发生这种情况时仍会在主实例上打开一个新窗口。
所有其他当前解决方案似乎只是退出新实例并重新关注当前实例。
const singleInstanceLock = app.requestSingleInstanceLock();
if (!singleInstanceLock) {
app.exit();
} else {
app.focus();
}
app.on('second-instance', (_event: Electron.Event, argv: string[]) => {
app.focus();
// code to open up second window lives here. As far as I can tell, it doesnt get called
});
【问题讨论】:
-
嗨,为了清楚起见,一次应该只有一个实例,但可以有多个窗口。当用户尝试打开另一个实例时,实例会退出,而已经打开的实例会创建一个新窗口?
-
没错。我试过按照这里的例子:github.com/electron/electron/blob/master/docs/api/… - 在第二个实例上,我从主实例打开一个新窗口。但由于某种原因,这似乎没有发生,应用程序正在退出。
-
我明白了,当您说应用程序正在退出时,您的意思是两个实例都在退出,还是已经打开的实例正在退出?您还介意包含您的
requestSingleInstanceLock代码吗? -
我将代码添加到问题中。
-
已经打开的实例正在退出,启动的新实例也是如此,所以在尝试启动第二个实例后我最终没有启动实例
标签: javascript electron