【问题标题】:Electron app.makeSingleInstance is allowing unlimited instancesElectron app.makeSingleInstance 允许无限实例
【发布时间】:2017-07-01 15:55:04
【问题描述】:

我的 Main.js 代码是:

let mainWindow = null;

const shouldQuit = app.makeSingleInstance((commandLine, workingDirectory) => {
  // Someone tried to run a second instance, we should focus our window.
  if (mainWindow) {
    if (mainWindow.isMinimized()){
      mainWindow.restore();
    }
    mainWindow.show();
    mainWindow.focus();
  } 
});

if (shouldQuit) {
  app.quit();
}

这与 Electron 文档以及我在网络上可以找到的所有示例基本相同。其他人遇到过这个问题吗?我在网上看到很多人说这段代码对他们不起作用。

我正在使用Electron-Builder 构建我的应用程序。

谢谢。

【问题讨论】:

  • 在 Ubuntu 16.10 上按预期工作。你运行的是什么操作系统?
  • 谢谢贾斯汀。 Windows 7 专业版 x64。我发现其他人有类似的问题,但遗憾的是没有解决方案。

标签: javascript electron electron-builder


【解决方案1】:

这在一段时间前就开始工作了,我已经升级了几次 Electron,所以我不得不假设这是低于 1.4 版本的 Electron 错误。

在此期间,网络上还有无数其他未解决的经验证明了这个想法。

【讨论】:

    【解决方案2】:
    ...
    // Force Single Instance Application
    const shouldQuit = app.makeSingleInstance((commandLine, workingDirectory) => {
        // Someone tried to run a second instance, we should focus our window.
        if (win) {
            if (win.isMinimized()) win.restore()
            win.focus()
        }
    })
    
    if (shouldQuit) {
        app.quit()
        return
    }
    
    ...
    

    参考:app.makeSingleInstance(callback): 和 dominikfiala's comment

    【讨论】:

      猜你喜欢
      • 2014-12-05
      • 2013-12-09
      • 2017-02-05
      • 1970-01-01
      • 2019-07-01
      • 1970-01-01
      • 2018-07-06
      • 2014-04-21
      • 1970-01-01
      相关资源
      最近更新 更多