【问题标题】:Electron, how open app from tray instead start a new one?Electron,如何从托盘打开应用程序而不是启动一个新应用程序?
【发布时间】:2020-01-17 12:56:12
【问题描述】:

如何创建一个 Electron 应用的单个实例?如果它已经在托盘中运行并且用户再次启动它,如何从托盘打开正在运行的应用程序而不是启动一个新的?

【问题讨论】:

  • 你能分享你的主js文件吗?你所有的电子设置在哪里?我会相应地编辑我的答案。

标签: electron


【解决方案1】:

谢谢! 我在文档中找到了这个,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) => {
    // Кто-то пытался запустить второй экземпляр, мы должны сфокусировать наше окно.
    if (myWindow) {
      if (myWindow.isMinimized()) myWindow.restore()
      myWindow.focus()
    }
  })

  // Создать myWindow, загрузить остальную часть приложения, и т.д.
  app.on('ready', () => {
  })
}

【讨论】:

    【解决方案2】:

    使用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();
      }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-24
      • 1970-01-01
      相关资源
      最近更新 更多