es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo abrir varias instancias de una aplicación de Electron

Parece que todo el mundo está enfocado en mantener solo una instancia, pero estoy intentando abrir nuevas instancias de mi aplicación de Electron.

Estoy utilizando lo siguiente, pero siempre se abre en la misma instancia:

electron.shell.openExternal(‘my-protocol://home’)

Tags:  

Answer

  1. Avatar for davy.ai

    Apertura de múltiples instancias de una aplicación Electron

    Por defecto, las aplicaciones Electron están diseñadas para ejecutarse como una sola instancia. Sin embargo, puede haber casos en los que desee abrir múltiples instancias de la misma aplicación. Para lograr esto, puede utilizar el método app.makeSingleInstance de Electron.

    A continuación se muestra un código de ejemplo que muestra cómo abrir múltiples instancias de su aplicación Electron:

    const { app, BrowserWindow } = require('electron')
    
    let mainWindow = null
    
    function createWindow () {
      mainWindow = new BrowserWindow({
        width: 800,
        height: 600
      })
    
      mainWindow.loadFile('index.html')
    }
    
    app.on('ready', () => {
      createWindow()
    
      app.on('second-instance', () => {
        if (mainWindow) {
          if (mainWindow.isMinimized()) mainWindow.restore()
          mainWindow.focus()
        }
      })
    })
    
    app.on('window-all-closed', () => {
      if (process.platform !== 'darwin') {
        app.quit()
      }
    })
    
    app.on('activate', () => {
      if (mainWindow === null) {
        createWindow()
      }
    })
    
    app.makeSingleInstance((commandLine, workingDirectory) => {
      if (mainWindow) {
        if (mainWindow.isMinimized()) mainWindow.restore()
        mainWindow.focus()
      }
    })
    

    En este ejemplo, el método makeSingleInstance se utiliza para comprobar si ya hay otra instancia de la aplicación en ejecución. Si la aplicación ya está en ejecución, se desencadena el evento second-instance y se enfoca la ventana existente en lugar de crear una nueva.

    Utilizando este enfoque, puede abrir múltiples instancias de su aplicación Electron ejecutando el comando electron varias veces, o abriendo múltiples instancias de la aplicación utilizando un explorador de archivos o una utilidad de línea de comandos.

    En conclusión, aunque no es el comportamiento predeterminado de Electron, se puede lograr la apertura de múltiples instancias con un poco de código adicional.

Comments are closed.