Saltar al contenido principal

app

Controla el ciclo de vida de los eventos de su aplicación.

Proceso: principal</0>

Los siguientes ejemplos muestran como salir de la aplicación cuando la última ventana está cerrada:

const { app } = require('electron')
app.on('window-all-closed', () => {
app.quit()
})

Eventos

El objeto app emite los siguientes eventos:

Evento: 'will-finish-launching'

Emitido cuando la aplicación ha terminado su iniciación básica. En windows y Linux el evento will-finish-launching es el mismo que el evento ready; en macOS este evento representa la notificación applicationWillFinishLaunching de NSApplication. Normalmente configurará aquí los receptores para los eventos open-file y open-url, e iniciará el informador de errores y el actualizador automático.

En la mayoría de los casos usted debe hacer todo desde el controlador del evento ready.

Evento: 'ready'

Devuelve:

Se emite una vez, cuando Electron ha terminado de iniciarse. On macOS, launchInfo holds the userInfo of the NSUserNotification or information from UNNotificationResponse that was used to open the application, if it was launched from Notification Center. You can also call app.isReady() to check if this event has already fired and app.whenReady() to get a Promise that is fulfilled when Electron is initialized.

Evento: 'window-all-closed'

Emitido cuando todas las ventanas han sido cerradas.

Si no se subscribe a este evento y todas las ventanas están cerradas, el comportamiento por defecto es salir de la aplicación; sin embargo, si se subscribe, usted controla si la aplicación se cierra o no. Si el usuario presionó Cmd + Q, o el desarrollador llamó a app.quit(), Electron primero tratará de cerrar todas las ventanas y entonces emitir el evento will-quit, y en este caso el evento window-all-closed no será emitido.

Evento: 'before-quit'

Devuelve:

  • event

Emitido antes de que la aplicación empiece a cerrar sus ventanas. Llamando a event.preventDefault() evitará el comportamiento por defecto, que es terminar la aplicación.

Note: Si el cierre de la aplicación fue iniciada por autoUpdater.quitAndInstall(), luego before-quit es emitido after emitiendo el evento close en todas las ventanas y cerrándolas.

Nota: En Windows, este evento no será emitido si la aplicación se cierra debido a un apagado/reinicio del sistema o el cierre de sesión de un usuario.

Evento: 'will-quit'

Devuelve:

  • event

Emitido cuando todas las ventanas han sido cerradas y la aplicación se cerrará. Llamando a event.preventDefault() evitará el comportamiento por defecto, que es terminar la aplicación.

Consulte la descripción del evento window-all-closed por las diferencias con los eventos will-quit y window-all-closed.

Nota: En Windows, este evento no será emitido si la aplicación se cierra debido a un apagado/reinicio del sistema o el cierre de sesión de un usuario.

Evento: 'quit'

Devuelve:

  • event
  • exitCode Integer

Emitido cuando la aplicación se está cerrando.

Nota: En Windows, este evento no será emitido si la aplicación se cierra debido a un apagado/reinicio del sistema o el cierre de sesión de un usuario.

Evento: 'open-file' macOS

Devuelve:

  • event
  • path string

Emitido cuando el usuario quiere abrir un archivo con la aplicación. El evento open-file es emitido usualmente cuando la aplicación está ya abierta y el sistema operativo quiere reusar la aplicación para abrir el archivo. open-file también es emitido cuando el archivo es soltado dentro del dock y la aplicación todavía no se está ejecutando. Asegúrese de escuchar sobre el evento open-file muy temprano en el el inicio de su aplicación para manejar este caso (incluso antes de que el evento ready sea emitido).

Usted debe llamar a event.preventDefault() si quiere manejar este evento.

En Windows, tiene que analizar process.argv (en el proceso principal) para encontrar la ruta del archivo.

Evento: 'open-url' macOS

Devuelve:

  • event
  • url string

Emitido cuando el usuario quiere abrir una URL con la aplicación. El archivo Info.plist de tu aplicación debe definir el esquema URL dentro de la llave CFBundleURLTypes y configurar NSPrincipalClass a AtomApplication.

Usted debe llamar a event.preventDefault() si quiere manejar este evento.

Evento: 'activate' macOS

Devuelve:

  • event
  • hasVisibleWindows boolean

Emitido cuando la aplicación está activada. Varias acciones puede activar este evento, como iniciar la aplicación por primera vez, intentar relanzar la aplicación cuando ya está corriendo, o hacer click en el dock de la aplicación o en el ícono de la barra de tareas.

Evento: 'did-become-active' macOS

Devuelve:

  • event

Emitido cuando la aplicación mac se activa. La diferencia del evento activate es que did-become-active es emitido cada vez que la aplicación se activa, no solo cuando el icono en el Dock es pulsado o la aplicación es re-lanzada.

Evento: 'continue-activity' macOS

Devuelve:

  • event
  • type string - A string identifying the activity. Se asigna a NSUserActivity.activityType.
  • userInfo unknown - Contiene el estado especifico de la aplicación guardado por la actividad en otro dispositivo.
  • details Object
    • webpageURL string (optional) - A string identifying the URL of the webpage accessed by the activity on another device, if available.

Emitido durante Handoff cuando una actividad de un artefacto diferente quiere ser reanudado. Usted debe llamar event.preventDefault() si quiere manejar este evento.

La actividad de un usuario puede ser continuada solo en una aplicación que tenga la misma identificación de equipo de desarrolladores como la la aplicación fuente de las actividades y que soporte los tipos de actividad. Los tipos de actividades soportadas están en el Info.plist de la aplicación bajo la llave NSUserActivityTypes.

Evento: 'will-continue-activity' macOS

Devuelve:

Emitido durante Handoff cuando una actividad de un artefacto diferente quiere ser reanudado. Usted debe llamar event.preventDefault() si quiere manejar este evento.

Evento: 'continue-activity-error' macOS

Devuelve:

  • event
  • type string - A string identifying the activity. Se asigna a NSUserActivity.activityType.
  • error string - A string with the error's localized description.

Emitido durante Handoff cuando una actividad desde un artefacto diferente falla al ser reanudada.

Evento: 'activity-was-continued' macOS

Devuelve:

  • event
  • type string - A string identifying the activity. Se asigna a NSUserActivity.activityType.
  • userInfo unknown - Contiene el estado especifico de la aplicación guardado por la actividad.

Emitido durante Handoff después de que una actividad de este artefacto haya sido reanudado con éxito en otro.

Evento: 'update-activity-state' macOS

Devuelve:

  • event
  • type string - A string identifying the activity. Se asigna a NSUserActivity.activityType.
  • userInfo unknown - Contiene el estado especifico de la aplicación guardado por la actividad.

Emitido cuando Handoff va a ser reanudado en otro artefacto. Si necesita actualizar el estado que se transferirá, debe llamar a event.preventDefault () inmediatamente, crear un nuevo diccionario userInfo y llamar a app.updateCurrentActivity() de manera oportuna. De otra manera, la operación fallará en continue-activity-error será llamada.

Evento: "new-window-for-tab" macOS

Devuelve:

  • event

Emitido cuando el usuario hace clic en el botón de nueva pestaña nativa de macOS. El botón de nueva pestaña solo es visible si el BrowserWindow actual tiene un tabbingIdentifier

Evento: 'browser-window-blur'

Devuelve:

Emitido cuando el browserWindow está borroso.

Evento: 'browser-window-focus'

Devuelve:

Emitido cuando se enfoca un browserWindow.

Evento: 'browser-window-created'

Devuelve:

Emitido cuando se crea un browserWindow.

Evento: 'web-contenido-creado'

Devuelve:

Emitido cuando un nuevo contenidoweb es creado.

Evento: 'certificate-error'

Devuelve:

  • event
  • webContents WebContents
  • url string
  • error string - The error code
  • certificate certificate
  • callback Función
    • isTrusted boolean - Whether to consider the certificate as trusted
  • isMainFrame boolean

Emitido cuando falla la verificación de certificate por url, al confiar en el certificado usted debe prevenir el comportamiento con event.preventDefault() y llamar callback(true).

const { app } = require('electron')

app.on('certificate-error', (event, webContents, url, error, certificate, callback) => {
if (url === 'https://github.com') {
// Verification logic.
event.preventDefault()
callback(true)
} else {
callback(false)
}
})

Evento: 'select-client-certificate'

Devuelve:

Emitido cuando el certificado de un cliente es requerido.

La url corresponde a la entrada de navegación requerida al certificado del cliente y callback puede ser llamado con una entrada filtrada de la lista. Usando event.preventDefault() previene que la aplicación use el primer certificado almacenado.

const { app } = require('electron')

app.on('select-client-certificate', (event, webContents, url, list, callback) => {
event.preventDefault()
callback(list[0])
})

Evento:'login'

Devuelve:

  • event
  • webContents WebContents
  • authenticationResponseDetails Object
    • url URL
  • authInfo Object
    • isProxy boolean
    • scheme string
    • host string
    • puerto Íntegro
    • realm string
  • callback Función
    • username string (optional)
    • password string (optional)

Emitido cuando webContents quiere hacer una autenticación básica.

El comportamiento por defecto es cancelar todas las autenticaciones. Para sobrescribir esto de debe evitar el comportamiento por defecto con event.preventDefault() y llamar a callback(username, password) con las credenciales.

const { app } = require('electron')

app.on('login', (event, webContents, details, authInfo, callback) => {
event.preventDefault()
callback('username', 'secret')
})

Si callback es llamado sin un nombre de usuario o contraseña, la solicitud de autenticación sera cancelada y el error de autenticación será retornado a la página.

Evento: 'gpu-info-update'

Emitido cada vez que hay una actualización de información de la GPU.

Evento: 'gpu-process-crashed' Obsoleto

Devuelve:

  • event
  • killed boolean

Emitido cuando el proceso de la GPU se crashea o es terminado.

Obsoleto: Este evento es reemplazado por el evento child-process-gone el cual contiene más información acerca de porque desapareció el proceso secundario. No siempre se debe a que haya dejado de funcionar. El booleano killed puede ser reemplazado al comprobar que reason === 'killed' cuando se cambie a ese evento.

Evento: 'renderer-process-crashed' Obsoleto

Devuelve:

Emitido cuando el proceso render de webContents se bloquea o es matado.

Obsoleto: Este evento es reemplazado por el evento render-process-gone el cual contiene más información acerca de porque desapareció el renderer process. No siempre se debe a que haya dejado de funcionar. El booleano killed puede ser reemplazado al comprobar que reason === 'killed' cuando se cambie a ese evento.

Evento: 'render-process-gone'

Devuelve:

  • event
  • webContents WebContents
  • details Object
    • reason string - The reason the render process is gone. Posibles valores:
      • clean-exit -El proceso ha finalizado con un exit code de cero
      • abnormal-exit - El proceso a finalizado con un exit code distinto de cero
      • killed - El proceso a enviado un SIGTERM o se a finalizado externamente
      • crashed - El proceso crasheo
      • oom - El proceso se quedo sin memoria
      • launch-failed - El proceso nunca se ha ejecutado correctamente
      • integrity-failure - las verificaciones de integridad de código de Windows fallaron
    • exitCode Integer - El código de salida del proceso, a menos que reason sea launch-failed, en cuyo caso exitCode será un código de error de ejecución especifico de la plataforma.

Emitido cuando el renderer process desaparece inesperadamente. Esto se debe comúnmente porque se crasheo o cerro.

Evento: 'child-process-gone'

Devuelve:

  • event
  • details Object
    • type string - Process type. Uno de los siguiente valores:
      • Utility
      • Zygote
      • Sandbox helper
      • GPU
      • Pepper Plugin
      • Pepper Plugin Broker
      • Unknown
    • reason string - The reason the child process is gone. Posibles valores:
      • clean-exit -El proceso ha finalizado con un exit code de cero
      • abnormal-exit - El proceso a finalizado con un exit code distinto de cero
      • killed - El proceso a enviado un SIGTERM o se a finalizado externamente
      • crashed - El proceso crasheo
      • oom - El proceso se quedo sin memoria
      • launch-failed - El proceso nunca se ha ejecutado correctamente
      • integrity-failure - las verificaciones de integridad de código de Windows fallaron
    • exitCode number - The exit code for the process (e.g. status from waitpid if on posix, from GetExitCodeProcess on Windows).
    • serviceName string (optional) - The non-localized name of the process.
    • name string (optional) - The name of the process. Ejemplos de utilidad: Audio Service, Content Decryption Module Service, Network Service, Video Capture, etc.

Emitido cuando el proceso hijo desaparece inesperadamente. Esto se debe comúnmente porque se crasheo o cerro. No incluye los procesos de renderizado.

Evento: 'accessibility-support-changed' macOS Windows

Devuelve:

  • event
  • accessibilitySupportEnabled boolean - true when Chrome's accessibility support is enabled, false otherwise.

Es emitido cuando el soporte de accesibilidad de Chrome es modificado. Este evento se dispara cuando las tecnologías de asistencia, como un lector de pantalla, sin activados o desactivados. Vea https://www.chromium.org/developers/design-documents/accessibility para mas información.

Evento: 'session-created'

Devuelve:

Emitido cuando Electron ha creado una nueva session.

const { app } = require('electron')

app.on('session-created', (session) => {
console.log(session)
})

Evento: 'second-instance'

Devuelve:

  • event
  • argv string[] - An array of the second instance's command line arguments
  • workingDirectory string - The second instance's working directory
  • additionalData unknown - A JSON object of additional data passed from the second instance

Este evento será emitido dentro de la primera instancia de tu aplicación cuando una segunda instancia ha sido ejecutada y llama app.requestSingleInstanceLock().

argv Es un Array los argumentos de la línea de comando de la segunda instancia y workingDirectory es su actual directorio de trabajo. Usualmente las aplicaciones responden a esto haciendo su ventana principal concentrada y no minimizada.

Note: If the second instance is started by a different user than the first, the argv array will not include the arguments.

Este evento garantiza que se ejecute después del evento ready de app para ser emitido.

Nota: el cromo puede Agregar argumentos adicionales en la línea de comando, como --original-proceso-Stuart-time.--original-proceso-Stuart-time``--original-proceso-Stuart-time.

Métodos

El objeto app tiene los siguientes métodos:

Note: Algunos métodos solo están disponibles en sistemas operativos específicos y son etiquetados como tal.

app.quit()

Intenta cerrar todas las ventanas. El evento before-quit se producirá primero. Si todas las ventas son cerradas exitosamente, el evento will-quit será producido y por defecto la aplicación se cerrará.

Este método garantiza que todos los eventos de beforeunload y unload serán correctamente ejecutados. Es posible que una ventana cancele la salida regresando falso en el manipulador de eventos antes de cargar.

app.exit([exitCode])

  • exitCode Íntegro (opcional)

Sale inmediatamente con exitCode. exitCode por defecto 0.

Todas las ventanas serán cerradas de inmediato sin preguntarle al usuario, y los eventos before-quit y will-quit no serán emitidos.

app.relaunch([options])

  • options Object (opcional)
    • args string[] - (opcional)
    • execPath string (opcional)

Reinicia la aplicación cuando la instancia se cierra.

Por defecto, la nueva instancia va a usar el mismo directorio de trabajo y los argumentos de la linea de comando con la instancia actual. Cuando args es especificada, el args se convertirá en un argumento de la linea de comandos. Cuando execPath es especificado, elexecPath Será ejecutado en el relanzador en vez de la aplicación en curso.

Note que este método no cierta la aplicación cuando esta es ejecutada, tiene que llamar app.quit o app.exit después de llamar app.relaunch para hacer que la aplicación se reinicie.

Cuando app.relaunch es llamada múltiples veces, múltiples instancias serán iniciadas después de que la actual instancia se cierre.

Un ejemplo de reiniciar la instancia actual de forma inmediata y agregar un nuevo argumento a la línea de comando de la nueva instancia:

const { app } = require('electron')

app.relaunch({ args: process.argv.slice(1).concat(['--relaunch']) })
app.exit(0)

app.isReady()

Devuelve boolean - true si Electron ha finalizado la inicialización, de otra manera false. Ver también app.whenReady().

app.whenReady()

Retorna Promise<void> - cumplido cuando Electron esta inicializado. También puede ser utilizado para comprobar el estado de: app.isReady() y registrar al evento ready si la aplicación aun no esta lista.

app.focus([options])

  • options Object (opcional)
    • steal boolean macOS - Hacer que el receptor sea la aplicación activa incluso si otra aplicación está activa en ese momento.

En Linux, se centra en la primera ventana visible. En macOS, hace que la aplicación sea la aplicación activa. En Windows, enfoca en la primera ventana de la aplicación.

Deberías intentar usar la opción steal con la mayor moderación probable.

app.hide() macOS

Oculta todas la ventanas de la aplicación sin minimizar estas.

app.isHidden() macOS

Returns boolean - true if the application—including all of its windows—is hidden (e.g. with Command-H), false otherwise.

app.show() macOS

Muestra las ventanas de la aplicación después que fueron ocultadas. No los enfoca automáticamente.

app.setAppLogsPath([path])

  • path string (opcional) - Una ruta personalizada para tus registros. Debe ser absoluta.

Establece o crea un directorio de registros de tu aplicación el cual puede ser manipulado con app.getPath() o app.setPath(pathName, newPath).

Llamando a app.setAppLogsPath() sin un parámetro path resultará que este directorio sea establecido a ~/Library/Logs/NombreDeTuApp en macOS, y dentro del directorio userData en Linux y Windows.

app.getAppPath()

Devuelve string - El directorio de la aplicación actual.

app.getPath(name)

  • name string - Puedes solicitar las siguientes rutas por el nombre:
    • Inicio Directorio de inicio del usuario.
    • appData Directorio de datos de la aplicación por usuario, el cual por defecto apunta a:
      • %APPDATA% en Windows
      • $XDG_CONFIG_HOME o ~/.config en Linux
      • ~/Library/Application Support en marcOS
    • userData The directory for storing your app's configuration files, which by default is the appData directory appended with your app's name. By convention files storing user data should be written to this directory, and it is not recommended to write large files here because some environments may backup this directory to cloud storage.
    • sessionData The directory for storing data generated by Session, such as localStorage, cookies, disk cache, downloaded dictionaries, network state, devtools files. By default this points to userData. Chromium may write very large disk cache here, so if your app does not rely on browser storage like localStorage or cookies to save user data, it is recommended to set this directory to other locations to avoid polluting the userData directory.
    • temp Directorio temporal.
    • exe Archivo ejecutable en curso.
    • module la librería libchromiumcontent.
    • escritorio El directorio del escritorio del usuario en curso.
    • documentos Directorio para la carpeta "Mis documentos" del usuario.
    • descargas Directorio para las descargas del usuario.
    • musica Directorio para la música del usuario.
    • imágenes Directorio para las imágenes del usuario.
    • videos Directorio para las imágenes del usuario.
    • recent Directorio para los documentos recientes del usuario (solo Windows).
    • logs Directorio para los archivos de registro de la aplicación.
    • crashDumps Directorio donde se almacenan los volcados de fallos.

Devuelve string - Una ruta a un directorio especial o a un archivo asociado con name. En caso de falla, un Error es lanzado.

Si se llama a app.getPath('logs') sin que se llame primero a app.setAppLogsPath(), se creará un directorio de registro por defecto equivalente a llamar a app.setAppLogsPath() sin un parámetro path.

app.getFileIcon(path[, options])

  • path string
  • options Object (opcional)
    • size string
      • pequeño - 16x16
      • normal - 32x32
      • large - 48x48 en Linux, 32x32 en Windows, no soportado en macOS.

Devuelve Promise<NativeImage> - completada con el icono de la aplicación, el cual es un NativeImage.

Obtiene el icono asociado a la ruta.

En Windows, Hay 2 tipos de iconos:

  • Íconos asociados con cierta extensión de un archivo, como .mp3, .png, etc.
  • Íconos dentro del archivo mismo, como .exe, .dll, .ico.

En Linux y macOS, los iconos dependen de la aplicación asociada con el tipo de archivo mime.

app.setPath(name, path)

  • name string
  • path string

Reemplaza el path a un directorio especial o un archivo asociado con name. Si la ruta especifica un directorio que no existe, un Error es lanzado. En ese caso, el directorio devería ser creado con fs.mkdirSync o similar.

Solo puede sobrescribir rutas de un name definido en app.getPath.

Por defecto, las cookies y el caché de una página web serán almacenados en el directorio sessionData. Si quiere cambiar su localización, tiene que sobrescribir la ruta de sessionData ante de que el evento ready del módulo app se emita.

app.getVersion()

Devuelve string - La versión de la aplicación cargada. Si no se encuentra la versión en el fichero package.json de la aplicación, se devuelve la versión del paquete o ejecutable.

app.getName()

Devuelve string - El nombre actual de la aplicación, el cual es el nombre de la aplicación en el archivo package.json.

Usualmente el campo name de package.json es un nombre corto en minúscula, de acuerdo con las especificaciones de los módulos npm. Normalmente debe especificar un productName también, el cual es el nombre de su aplicación en mayúsculas, y que será preferido por Electron sobre name.

app.setName(name)

  • name string

Reescribe el nombre de la aplicación actual.

Nota: Esta función anula el nombre usado internamente por Electron; no afecta el nombre que el usa el sistema operativo.

app.getLocale()

Devuelve string - Los parámetros regionales actuales de la aplicación, recopilados usando la biblioteca l10n_util de Chromium. Los posibles valores de retorno están documentados aquí.

Para establecer la configuración regional, querrás usar el interruptor de línea de comando al inicio de la aplicación, que puedes encontrar aquí.

Nota: Al distribuir su aplicación empaquetada, también tiene que enviar las carpetas locales.

Nota: En Windows, tienes que llamarlo después que los eventos ready sean emitidos.

app.getLocaleCountryCode()

Devuelve string - Localización del sistema operativo del usuario código del país de dos letras ISO 3166. El valor es tomado desde APIs nativas del sistema operativo.

Nota: cuando no se puede detectar el código de país de la configuración regional, devuelve una cadena vacía.

app.addRecentDocument(path) macOS Windows

  • path string

Añade la ruta a la lista de documentos recientes.

Esta lista es administrada por el sistema operativo. En Windows, puede visitar la lista desde la barra de tarea y en macOS, puede visitar la desde el menu dock.

app.clearRecentDocuments() macOS Windows

Borra la lista de documentos recientes.

app.setAsDefaultProtocolClient(protocol[, path, args])

  • protocol string - The name of your protocol, without ://. Por ejemplo si quiere que su aplicación maneje enlaces electron://, llame este método con electron como el parámetro.
  • path string (opcional) Windows - La ruta al ejecutable de Electron. Por defecto a process.execPath
  • args string[] (opcional) Windows - Argumentos pasados al ejecutable. Por defecto a un array vacío

Regresa boolean - Siempre que el llamado fue exitoso.

Establece el ejecutable actual as el manejador por defecto para un protocolo (alias esquema URI). Te permite integrar tu app aún más en el sistema operativo. Una vez registrado. todos los enlaces con tu-protocolo:// serán abiertos con el ejecutable actual. Todo el enlace, incluyendo el protocolo, sera pasado a tu aplicación como un parámetro.

Nota: En macOS, solo puede registrar protocolos que han sido agregados al info.plist de tu aplicación, el cual no puede ser modificado en tiempo de ejecución. Sin embargo, puede cambiar el archivo durante el tiempo de construcción a través de Electron Forge, Electron Packager, o editando información. listar con un editor de texto. Vea la Apple's documentation para mas información.

Note: En un entorno de Windows Store (cuando se empaqueta como appx) esta API devolverá true para todas las llamadas pero la clave de registro que establece no será accesible por otras aplicaciones. Para registrar tu aplicación de Windows Store como gestor de protocolo determinado debe declare the protocol in your manifest.

La API usa el Registro de Windows y LSSetDefaultHandlerForURLScheme internamente.

app.removeAsDefaultProtocolClient(protocol[, path, args]) macOS Windows

  • protocol string - The name of your protocol, without ://.
  • ruta cadena (opcional) Windows - por defecto a process.execPath
  • args cadena[] (opcional) Windows - por defecto a un arreglo vacío

Regresa boolean - Siempre que el llamado fue exitoso.

Este método comprueba si el ejecutable actual es el manejador para un protocolo (como esquema URI). Si es así, eliminará la aplicación como el manejador predeterminado.

app.isDefaultProtocolClient(protocol[, path, args])

  • protocol string - The name of your protocol, without ://.
  • ruta cadena (opcional) Windows - por defecto a process.execPath
  • args cadena[] (opcional) Windows - por defecto a un arreglo vacío

Deveulve boolean -Si el ejecutable actual es el manejador por defecto para un protocolo (alias esquema URI).

Nota: En macOS puede usar este método para verificar si la aplicación ha sido registrada como controladora por defecto para un protocolo. También puedes verificar esto al marcar ~/Library/Preferences/com.apple.LaunchServices.plist en el dispositivo macOS. Por favor vea la documentación de Apple para detalles.

La API usa el Registro de Windows y LSCopyDefaultHandlerForURLScheme internamente.

app.getApplicationNameForProtocol(url)

  • url string - un URL con el nombre del protocolo para verificar. A diferencia de otros métodos de esta familia, este acepta una URL entera, incluyendo :// a un mínimo de (por ejemplo https://).

Devuelve string - Nombre de la aplicación que controla el protocolo o un string vacío si no hay controlador. Por ejemplo, si Electron es el controlador por defecto de la URL, este podría ser Electron en Windows y Mac. Sin embargo, no confíe en el formato preciso que no se garantiza que no cambie. Espere un formato diferente en Linux, posiblemente con un sufijo .desktop.

Este método devuelve el nombre de la aplicación del controlador para el protocolo de la URL (alias schema URI).

app.getApplicationInfoForProtocol(url) macOS Windows

  • url string - un URL con el nombre del protocolo para verificar. A diferencia de otros métodos de esta familia, este acepta una URL entera, incluyendo :// a un mínimo de (por ejemplo https://).

Devuelve Promise<Object> - Resuelve con un objeto conteniendo lo siguiente:

  • icon NativeImage - el icono de visualización de la aplicación que maneja el protocolo.
  • path string - ruta de la instalación de la aplicación que maneja el protocolo.
  • name string - nombre para mostrar de la aplicación que maneja el protocolo.

Este método devuelve una promesa que contiene el nombre, ícono y ruta de la aplicación del manejador predeterminado para el protocolo (esquema URI) de una URL.

app.setUserTasks(tasks) Windows

  • tarea Tarea[] - Arreglo de objetos Tarea

Agrega tasks a la categoría Tasks de la Jump List en Windows.

tareas es un arreglo de objetos Task.

Regresa boolean - Siempre que el llamado fue exitoso.

Nota: Si quisiese personalizar la lista de saltos aún más use en su lugar app.setJumpList(categories).

app.getJumpListSettings() Windows

Devuelve Objeto:

  • minItems Entero - El número mínimo de elementos que será mostrado en la lista (Para una descripción detallada de este valor vea el documento MSDN).
  • removedItems JumpListItem[] - Array JumpListItem de objetos que corresponden a elementos que el usuario explícitamente a eliminado de la categorías personalizadas en el Jump List. Estos elementos no deben ser añadidos nuevamente a la jump list en el próximo llamado a app.setJumpList(), Windows no mostrará ninguna categoría personalizada que contenga alguno de los elementos removidos.

app.setJumpList(categories) Windows

Devuelve string

Configura o remueve una Jump list personalizada para la aplicación, y devuelve una de las siguientes cadenas:

  • ok - Nada salió mal.
  • error - Uno o más errores ocurrieron, habilite el registro del tiempo de corrida para averiguar la causa probable.
  • invalidSeparatorError - Se ha intentado agregar un separador a una categoría personalizada en el Jump List. Los separadores solo están permitidas en la categoría estándar Tasks.
  • Error en el registro del archivo - Fue realizado un intento de añadir el enlace del archivo a la Jump list para un tipo de archivo que la aplicación no está registrada para controlar.
  • Error Acceso a categoría personalizada negado - Cateogrías personalizadas no pueden ser añadidas a la Jump List debido a la privacidad del usuario o a la política del grupo.

Si categories es null la configuración personalizada previa de la Jump List (si hay alguna) será reemplazada por la Jump List estándar para la aplicación (manejada por Windows).

Nota: Si un objeto JumpListCategory no tiene la propiedad type o name establecidas, entones se asume que el type es tasks. Si la propiedad name está establecida pero la propiedad type esta omitida entonces se asume que el type es custom.

Nota: Usuarios pueden remover elementos de las categorías personalizadas y Windows no permitirá que un elemento removido sea añadido de nuevo a la categoría personalizada hasta después del siguiente llamado exitoso a app.setJumpList(categories). Cualquier intento de añadir nuevamente el elemento a la categoría personalizada antes que eso resultará en que la categoría entera sea omitida de la Jump List. La lista de elemento removidos puede ser obtenida usando app.getJumpListSettings().

Nota: La longitud máxima de la propiedad description de una Jump List es de 260 caracteres. Más alla de este limite, el elemento no se añadirá a la Jump List, ni se mostrará.

Aquí hay un ejemplo sencillo de cómo crear una Jump List personalizada:

const { app } = require('electron')

app.setJumpList([
{
type: 'custom',
name: 'Recent Projects',
items: [
{ type: 'file', path: 'C:\\Projects\\project1.proj' },
{ type: 'file', path: 'C:\\Projects\\project2.proj' }
]
},
{ // has a name so `type` is assumed to be "custom"
name: 'Tools',
items: [
{
type: 'task',
title: 'Tool A',
program: process.execPath,
args: '--run-tool-a',
icon: process.execPath,
iconIndex: 0,
description: 'Runs Tool A'
},
{
type: 'task',
title: 'Tool B',
program: process.execPath,
args: '--run-tool-b',
icon: process.execPath,
iconIndex: 0,
description: 'Runs Tool B'
}
]
},
{ type: 'frequent' },
{ // has no name and no type so `type` is assumed to be "tasks"
items: [
{
type: 'task',
title: 'New Project',
program: process.execPath,
args: '--new-project',
description: 'Create a new project.'
},
{ type: 'separator' },
{
type: 'task',
title: 'Recover Project',
program: process.execPath,
args: '--recover-project',
description: 'Recover Project'
}
]
}
])

app.requestSingleInstanceLock([additionalData])

  • additionalData Record<any, any> (opcional) - Un objeto JSON que contiene datos adicionales para enviar a la primera instancia.

Devuelve boolean

El valor devuelto de este método indica si esta instancia de su aplicación obtuvo con éxito el bloqueo. Si no se puede obtener el bloqueo, puedes asumir que otra instancia de tu aplicación ya está corriendo con el bloqueo y salir inmediatamente.

Por ejemplo. Este método devuelve true si el proceso es la instancia principal de tu aplicación y tu aplicación debe seguir cargando. Retorna false si su proceso deja inmediatamente de enviar parámetros a otra instancia que ya haya adquirido el bloqueo con anterioridad.

En macOS, el sistema fuerza instancias únicas automáticamente cuando los usuario intentan abrir una segunda instancia de tu aplicación en Finder, y los eventos open-file y open-url seran emitidos por eso. Como sea, cuando los usuarios inicien tu aplicación en la linea de comando, el mecanismo de instancias única del sistema del sistema serán puenteadas, y tendrás que usar este método para asegurar una única instancia.

Un ejemplo de activar la ventana de la instancia primaria cuando una de segunda instancia se inicia:

const { app } = require('electron')
let myWindow = null

const additionalData = { myKey: 'myValue' }
const gotTheLock = app.requestSingleInstanceLock(additionalData)

if (!gotTheLock) {
app.quit()
} else {
app.on('second-instance', (event, commandLine, workingDirectory, additionalData) => {
// Imprime los datos recibidos de la segunda instancia.
console.log(additionalData)

// Alguien trato de ejecutar una segunda instancia, deberíamos enfocar nuestra ventana.
if (myWindow) {
if (myWindow.isMinimized()) myWindow.restore()
myWindow.focus()
}
})

// Create myWindow, load the rest of the app, etc...
app.whenReady().then(() => {
myWindow = createWindow()
})
}

app.hasSingleInstanceLock()

Devuelve boolean

Este método devuelve si esta instancia de tu aplicación es actualmente manteniendo el bloqueo de una sola instancia. Usted puede realiza un bloqueo con app.requestSingleInstanceLock() o liberarlo con app.releaseSingleInstanceLock()

app.releaseSingleInstanceLock()

Libera todos los bloqueos que fueron creados por requestSingleInstanceLock. Esto permitirá que múltiples instancias de la aplicación se ejecuten una vez más codo con codo.

app.setUserActivity(type, userInfo[, webpageURL]) macOS

  • type caden - Raramente identifica la actividad. Se asigna a NSUserActivity.activityType.
  • userInfo any - Estado especifico de la aplicación para almacenar para su uso por otro dispositivo.
  • webpageURL string (opcional) - La página web a cargar en un navegador si no hay una aplicación adecuada instalada en el dispositivo de reanudación. El esquema debe ser http o https.

Crea un NSUserActivity y se establece como la actividad actual. La actividad es elegible para Handoff a otro dispositivo luego.

app.getCurrentActivityType() macOS

Devuelve string - El tipo de la actividad que se está ejecutando actualmente.

app.invalidateCurrentActivity() macOS

Invalida la actividad actual Handoff del usuario.

app.resignCurrentActivity() macOS

Marca la actividad actual del usuario Handoff como inactiva sin invalidarla.

app.updateCurrentActivity(type, userInfo) macOS

  • type caden - Raramente identifica la actividad. Se asigna a NSUserActivity.activityType.
  • userInfo any - Estado especifico de la aplicación para almacenar para su uso por otro dispositivo.

Actualiza la actividad actual si su tipo coincide type, fusionando las entradas de userInfo en su actual diccionario userInfo.

app.setAppUserModelId(id) Windows

  • id string

Cambia el Id Modelo de Usuario de la Aplicación a id.

app.setActivationPolicy(policy) macOS

  • policy string - Puede ser 'regular', 'accessory', o 'prohibited'.

Establece la política de activación para una aplicación determinada.

Tipos de políticas de activación:

  • 'regular' - La aplicación es una aplicación ordinaria que aparece en el Dock y puede tener una interfaz de usuario.
  • 'accessory' - La aplicación no aparece en el Dock y no tiene una barra de menú, pero puede ser activada programáticamente o pulsando en una de sus ventanas.
  • 'prohibited' - La aplicación no aparece en el Dock y no puede crear ventanas ni activarse.

app.importCertificate(options, callback) Linux

  • options Object
    • cetificado cadena - camino para el archivo pkcs12.
    • contraseña cadena - Frase clave para el certificado.
  • callback Función
    • resultado Entero - Resultado del importe.

Importa el certificado en formato pkcs12 dentro del certificado de la plataforma. callback es llamado con el result de la operación de importación, un valor 0 indica que fue exitoso mientras que cualquier otro valor indica que fallo de acuerdo a Chromium net_error_list.

app.configureHostResolver(options)

  • options Object
    • enableBuiltInResolver boolean (opcional) - Si el resolver de host integrado se utiliza en preferencia para getaddrinfo. Cuando está activado, el resolver integrado intentara usar las configuraciones DNS del sistema para hacer las consultas DNS por si mismo. Activado por defecto en macOS, desactivado por defecto en Windows y Linux.
    • secureDnsMode string (opcional) - Puede ser "off", "automatic" o "secure". Configura el modo DNS-over-HTTP. Cuando es "off", las búsquedas DoH no se realizarán. Cuando es "automatic", las búsquedas DoH se realizarán primero si DoH está disponible, y las búsquedas DNS se realizarán como una reserva. Cuando es "secure", sólo se realizarán búsquedas DoH. Por defecto es "automatic".
    • secureDnsServers string[] (opcional) - Una lista de plantillas de servidor DNS-over-HTTP. Vea RFC8484 § 3 para más detalles sobre el formato de la plantilla. La mayoría de los servidores soportan el método POST; la plantilla para estos servidores es simplemente una URI. Tenga en cuenta que para algunos proveedores DNS , el resolver actualizará automáticamente a DoH a menos que DoH este explícitamente desactivado, incluso si no hay servidores DoH proporcionados en esta lista.
    • enableAdditionalDnsQueryTypes boolean (opcional) - Controla si consultas DNS de tipos adicionales, p.e. HTTPS(DNS type 65) serán permitidas ademas de las tradicionales consultas A y AAAA cuando una solicitud esta siendo hecha a través de DNS inseguro. No tiene efecto en DNS seguro que siempre permite tipos adicionales. Defaults to true.

Configure la resolución de host (DNS y DNS-over-HTTPS). Por defecto, se utilizarán los siguientes resolutores en orden:

  1. DNS-over-HTTPS, si DNS provider supports it, luego
  2. el resolutor integrado (activado sólo por defecto en macOS), luego
  3. el resolver del sistema (p.e. getaddrinfo).

Esto puede ser configurado tanto para restringir el uso de DNS no-encriptado (secureDnsMode: "secure"), o desactivar DNS-over-HTTPS (secureDnsMode:"off"). También es posible activar o desactivar el resolver incorporado.

Para desactivar DNS inseguro, puede especificar secureDnsMode de "secure". Si usted hace eso, debe asegurarse de proveer una lista de servidores DNS-overHTTPS para usar, en caso de que la configuración DNS del usuario no incluya un proveedor que soporte DoH.

app.configureHostResolver({
secureDnsMode: 'secure',
secureDnsServers: [
'https://cloudflare-dns.com/dns-query'
]
})

Esta API debe ser llamada antes que el evento ready sea emitido.

app.disableHardwareAcceleration()

Desactiva la aceleración por hardware para esta aplicación.

Este método solo puede ser llamado antes de iniciada la aplicación.

app.disableDomainBlockingFor3DAPIs()

Por defecto, Chromium deshabilita las APIs 3D (p. ej. WebGL) hasta el reinicio por dominio si los procesos de la GPU se bloquean con demasiada frecuencia. Esta función inhabilita ese comportamiento.

Este método solo puede ser llamado antes de iniciada la aplicación.

app.getAppMetrics()

Devuelve ProcessMetric[]: Array de ProcessMetric objetos que corresponden a la memoria y estadísticas de uso de la CPU de todos los procesos asociados con la aplicación.

app.getGPUFeatureStatus()

Devuelve GPUFeatureStatus - el estado de la función de gráficos de chrome://gpu/.

Note: Esta información sólo es usable después de que le evento gpu-info-update es emitido.

app.getGPUInfo(infoType)

  • infoType string - Puede ser basic o complete.

Devuelve Promise<unknown>

Para infoType igual a complete: La promesa es completada con Object conteniendo toda la información de la GPU como chromium's GPUInfo object. Esto incluye la versión y la información del controlador que es mostrada en la pagina chrome://gpu.

Para infoType igual a basic: La promesa se cumple con Object que contiene pocos atributos que son solicitados con complete. Aquí hay un ejemplo de respuesta básica:

{
auxAttributes:
{
amdSwitchable: true,
canSupportThreadedTextureMailbox: false,
directComposition: false,
directRendering: true,
glResetNotificationStrategy: 0,
inProcessGpu: true,
initializationTime: 0,
jpegDecodeAcceleratorSupported: false,
optimus: false,
passthroughCmdDecoder: false,
sandboxed: false,
softwareRendering: false,
supportsOverlays: false,
videoDecodeAcceleratorFlags: 0
},
gpuDevice:
[{ active: true, deviceId: 26657, vendorId: 4098 },
{ active: false, deviceId: 3366, vendorId: 32902 }],
machineModelName: 'MacBookPro',
machineModelVersion: '11.5'
}

El uso de basic debería ser preferido si sólo se necesita información básica como vendorId o driverId.

app.setBadgeCount([count]) Linux macOS

  • count Integer (opcional) - Si un valor es proporcionado, establece el badge al valor proporcionado de lo contrario en macOS, muestra un simple punto blanco (p. ej. número desconocido de notificaciones). En Linux, si un valor no es proporcionado el badge no se mostrará.

Regresa boolean - Siempre que el llamado fue exitoso.

Establece la insignia de contador para la App actual. Establecer el recuento a 0 ocultará la insignia.

En macOS, se muestra en el icono del Dock. En Linux, solo funciona para Unity launcher.

Nota: El lanzador de Unity necesita un archivo .desktop para funcionar. Para más información, por favor lee la documentación de integración con Unity.

app.getBadgeCount() Linux macOS

Devolver Entero - El valor actual establecido en la insignia contraria.

app.isUnityRunning() Linux

Devuelve boolean - Aunque el ambiente del escritorio actual sea un ejecutador de Unity.

app.getLoginItemSettings([options]) macOS Windows

  • options Object (opcional)
    • path string (opcional) Windows - La ruta del ejecutable contra la que comparar. Por defecto a process.execPath.
    • args string[] (opcional) Windows - Los argumentos de línea de comandos contra los que comrpar. Por defecto a un array vacío.

Su proporcionas las opciones path y args a app.setLoginItemSettings, entonces necesitas pasar los mismos argumentos aquí para openAtLogin para que sea correctamente configurado.

Devuelve Objeto:

  • openAtLogin boolean - true si la aplicación es establecida para abrirse al iniciar.
  • openAsHidden boolean macOS - true si la aplicación es establecida para abrirse como oculta al login. Esta configuración no está disponible en builds para la tienda de aplicaciones de MAC.
  • wasOpenedAtLogin boolean macOS - true si la aplicación fue abierto automáticamente al login. Esta configuración no está disponible en builds para la tienda de aplicaciones de MAC.
  • wasOpenedAsHidden boolean macOS - true si la aplicación fue abierto como un artículo oculto de login. Esto indica que la aplicación no debería abrir ninguna ventana al inicio. Esta configuración no está disponible en builds para la tienda de aplicaciones de MAC.
  • restoreState boolean macOS - true si la aplicación fue abierto como un artículo de login que debería restaurar el estado de la sesión anterior. Esto indica que la aplicación debería restaurar las ventanas que fueron abiertas la última vez que la aplicación fue cerrada. Esta configuración no está disponible en builds para la tienda de aplicaciones de MAC.
  • executableWillLaunchAtLogin boolean Windows - true si la aplicación está configurada para abrirse al iniciar la sesión y su clave de ejecución no está desactivada. Esto difiere de openAtLogin ya que ignora la opción args, esta propiedad será verdadera si el ejecutable dado se iniciaría la iniciar sesión con cualquier argumento.
  • launchItems Object[] Windows
    • name string Windows - valor de nombre de una entrada del registro.
    • path string Windows - El ejecutable a una aplicación que corresponde a la entrada de un registro.
    • args string[] Windows - los argumentos de línea de comando a pasar al ejecutable.
    • scope string Windows - uno de user o machine. Indica si la entrada del registro está bajo HKEY_CURRENT USER o HKEY_LOCAL_MACHINE.
    • enabled boolean Windows - true si la llave del registro de la aplicación está en inicio aprobado y por lo tanto muestra como enabled en el Administrador de Tareas y las configuraciones de Windows.

app.setLoginItemSettings(settings) macOS Windows

  • Objeto settings
    • openAtLogin boolean (opcional) - true para abrir la aplicación al inicio, false para eliminar la aplicación como un elemento de inicio de sesión. Por defecto es false.
    • openAsHidden boolean (optional) macOS - true abrirse la aplicación como oculta. Por defecto a false. El usuario puede editar esta configuración desde la Preferencias del Sistema, así que app.getLoginItemSettings().wasOpenedAsHidden debe ser comprobado cuanto la aplicación es abierta para conocer el valor actual. Esta configuración no está disponible en builds para la tienda de aplicaciones de MAC.
    • path string (opcional) Windows - El ejecutable a iniciar en el inicio de sesión. Por defecto a process.execPath.
    • args string[] (opcional) Windows -Los argumentos de línea de comandos para pasar al ejecutable. Por defecto a un array vacío. Tenga cuidado de envolver las rutas entre comillas.
    • enabled boolean (optional) Windows - true will change the startup approved registry key and enable / disable the App in Task Manager and Windows Settings. Por defecto es true.
    • name string (opcional) Windows - nombre de valor para escribir en el registro. Por defecto es el AppUserModelId() de la aplicación. Establece los objetos de inicio de ajuste de la aplicación.

Para trabajar con autoUpdater de Electron en Windows, el cual usa Squirrel, querrás establecer el camino de ejecución de Update.exe, y pasarán los argumentos que especifican el nombre de tu aplicación. Por ejemplo:

const appFolder = path.dirname(process.execPath)
const updateExe = path.resolve(appFolder, '..', 'Update.exe')
const exeName = path.basename(process.execPath)

app.setLoginItemSettings({
openAtLogin: true,
path: updateExe,
args: [
'--processStart', `"${exeName}"`,
'--process-start-args', `"--hidden"`
]
})

app.isAccessibilitySupportEnabled() macOS Windows

Devuelve boolean - true si la accesibilidad de soporte de Chrome es habilitado, o false de otra manera. Esta API devolverá true si el uso de tecnologías asistivas, como leectores de pantallas, son detectadas. Ver https://www.chromium.org/developers/design-documents/accessibility para más detalles.

app.setAccessibilitySupportEnabled(enabled) macOS Windows

Manualmente habilita el soporte de accesibilidad de Chrome, lo que permite exponer el interruptor de accesibilidad a los usuarios en la configuración de la aplicación. Mira Chromium's accessibility docs para mas detalles. Desactivado por defecto.

Esta API debe ser llamada antes que el evento ready sea emitido.

Note: Rendering accessibility tree can significantly affect the performance of your app. No se debe habilitar por defecto.

app.showAboutPanel()

Muestra las opciones del panel Acerca de de las aplicaciones. Estas opciones se pueden sobrescribir con app.setAboutPanelOptions(options).

app.setAboutPanelOptions(options)

  • options Object
    • applicationName cadena (opcional) - El nombre de la aplicación.
    • applicationVersion string (opcional) - La versión de la aplicación.
    • copyright string (opcional) - La información de Copyright.
    • version string (opcional) macOS - El numero de versión de compilación de la aplicación.
    • credits string (opcional) macOS Windows - Información de crédito.
    • autores string[] (opcional) Linux - Lista de autores de la app.
    • website string (opcional) Linux - El sitio web de la aplicación.
    • iconPath string (opcional) Linux Windows - Ruta al icono de la aplicacion en un archivo de formato JPEG o PNG. En Linux, será mostrado como 64x64 píxeles mientras se mantiene la relación de aspecto.

Establece el panel de opciones. Esto reemplazará los valores definidos en el archivo .plist de la app en macOS. Ver el Apple docs para más detalles. En Linux, los valores deben establecerse para ser mostrados; no hay valores por defecto.

Si no estableces credits pero aún deseas sacarlos en tu aplicación, AppKit buscará por un archivo llamado "Credits.html", "Credits.rtf", y "Credits.rtfd", en ese orden, en el paquete devuelto por el método de clase principal NSBundle. El primer archivo encontrado es usado, y si no se encuentra ninguno, el área de información se deja en blanco. Vea la documentation de Apple para más información.

app.isEmojiPanelSupported()

Devuelve boolean - si la versión del sistema operativo actual permite permite o no los selectores de emoji nativos.

app.showEmojiPanel() macOS Windows

Muestra el selector de emoji nativo de la plataforma.

app.startAccessingSecurityScopedResource(bookmarkData) mas

  • bookmarkData string - El marcador de datos de ámbito de seguridad de codificación base64 devuelto por los métodos dialog.showOpenDialog o dialog.showSaveDialog.

Devuelve Function - Esta función debe ser llamado una vez que hayas terminado de acceder el archivo de ámbito de seguridad. Si no recuerdas de dejar de acceder el marcador, recursos de nucleo se fugarán y tu aplicación se perderá su capacidad de alcanzar afuera del entorno aislado completamente hasta que se reinicia tu aplicación.

// Start accessing the file.
const stopAccessingSecurityScopedResource = app.startAccessingSecurityScopedResource(data)
// You can now access the file outside of the sandbox 🎉

// Remember to stop accessing the file once you've finished with it.
stopAccessingSecurityScopedResource()

Empezar a acceder un recurso de ámbito de seguridad. Con este método las aplicaciones Electron que están empaquetadas para la Mac App Store pueden llegar fuera de su caja de arena para acceder a los archivos elegidos por el usuario. Ver a Apple's documentation por una descripción de cómo funciona este sistema.

app.enableSandbox()

Habilita el modo sandbox completo en la aplicación. Esto significa que todos los renderizadores se lanzarán en un espacio aislado, independientemente del valor de la marca de sandbox en WebPreferences.

Este método solo puede ser llamado antes de iniciada la aplicación.

app.isInApplicationsFolder() macOS

Devuelve boolean - Si la aplicación esta actualmente ejecutándose desde la carpeta de Aplicación del sistema. Usar en combinación con app.moveToApplicationsFolder()

app.moveToApplicationsFolder([options]) macOS

  • options Object (opcional)
    • conflictHandler Function\<boolean> (opcional) - Un manejador para el conflicto potencial en la falla de movimiento.
      • conflictType string - El tipo de conflicto de movimiento encontrado por el controlador; puede ser exists o existsAndRunning, donde exists quiere decir que una aplicación con el mismo nombre está presente el directorio de las Aplicaciones y existsAndRunning quiere decir que que existe y que se está ejecutando actualmente.

Devuelve boolean - Si el movimiento fue realizado correctamente. Por favor, ten en cuenta que si el movimiento es exitoso, tu aplicación se cerrará y se reiniciará.

No confirmation dialog will be presented by default. If you wish to allow the user to confirm the operation, you may do so using the dialog API.

Nota: Este método emite errores si algo que no sea el usuario provoca un error en el movimiento. Por ejemplo si el usuario cancela el dialogo de autorización, este método va a devolver falso. Si nosotros no realizamos la copia, entonces este método va a lanzar un error. El mensaje de error debería ser descriptivo y advertir exactamente que ha fallado.

Por defecto, si una aplicación con el mismo nombre que la aplicación que esta siendo movida existe en el directorio de las Aplicaciones y no está ejecutándose, la aplicación existente será eliminada y la aplicación activa se moverá en su lugar. If it is running, the pre-existing running app will assume focus and the previously active app will quit itself. Este comportamiento puede ser cambiado proporcionando un controlador de conflicto opcional, donde el booleano devuelto por el controlado determina si el conflicto de movimiento se resuelve o no con el controlador por defecto. es decir, devolviendo false se asegura que no se tomaran más acciones, devolviendo true resultará en el comportamiento por defecto y el método continuando.

Por ejemplo:

app.moveToApplicationsFolder({
conflictHandler: (conflictType) => {
if (conflictType === 'exists') {
return dialog.showMessageBoxSync({
type: 'question',
buttons: ['Halt Move', 'Continue Move'],
defaultId: 0,
message: 'An app of this name already exists'
}) === 1
}
}
})

Significaría que si una aplicación ya existe en el directorio del usuario, si el usuario elige 'Continuar Mover' entonces la función debería continuar con su comportamiento por defecto y la aplicación existente será eliminada y la aplicación activa será movida en su lugar.

app.isSecureKeyboardEntryEnabled() macOS

Devuelve boolean -si Secure Keyboard Entry está habilitado.

By default this API will return false.

app.setSecureKeyboardEntryEnabled(enabled) macOS

  • enabled boolean - Enable or disable Secure Keyboard Entry

Set the Secure Keyboard Entry is enabled in your application.

By using this API, important information such as password and other sensitive information can be prevented from being intercepted by other processes.

See Apple's documentation for more details.

Note: Enable Secure Keyboard Entry only when it is needed and disable it when it is no longer needed.

Propiedades

app.accessibilitySupportEnabled macOS Windows

Un propiedad boolean eso es true si el soporte de accesibilidad de Chrome esta activado, false de otra manera. Esta propiedad será true si se ha detectado el uso de tecnologías asistitivas, como lectores de pantalla. Estableciendo esta propiedad manualmente a true se activá el soporte de accesibilidad de Chrome, permitiendo a los desarrolladores exponer el cambio de accesibilidad a los usuarios en la configuración de la aplicación.

See Chromium's accessibility docs for more details. Desactivado por defecto.

Esta API debe ser llamada antes que el evento ready sea emitido.

Note: Rendering accessibility tree can significantly affect the performance of your app. No se debe habilitar por defecto.

app.applicationMenu

Una propiedad Menu | null que devuelve Menu si uno ha sido establecido y null de lo contrario. Los usuarios pueden pasar un Menú para establecer esta propiedad.

app.badgeCount Linux macOS

Una propiedad Integer que devuelve el recuento de insignias para la aplicación actual. Setting the count to 0 will hide the badge.

On macOS, setting this with any nonzero integer shows on the dock icon. On Linux, this property only works for Unity launcher.

Nota: El lanzador de Unity necesita un archivo .desktop para funcionar. Para más información, por favor lee la documentación de integración con Unity.

Note: On macOS, you need to ensure that your application has the permission to display notifications for this property to take effect.

app.commandLine SoloLectura

Un objeto CommandLine que te permite leer y manipular los argumentos de linea de comando que usa Chromium.

app.dock macOS SoloLectura

A Dock | undefined object that allows you to perform actions on your app icon in the user's dock on macOS.

app.isPackaged SoloLectura

Una propiedad boolean que retorna true si la aplicación está empaquetada, false si no lo está. Para muchas aplicaciones, esta propiedad puede ser usada para distinguir los ambientes de desarrollo y producción.

app.name

Una propiedad string que índica el nombre actual de la aplicación, el cual es el nombre en el archivo package.json de la aplicación.

Usualmente el campo name de package.json es un nombre corto en minúscula, de acuerdo con las especificaciones de los módulos npm. Normalmente debe especificar un productName también, el cual es el nombre de su aplicación en mayúsculas, y que será preferido por Electron sobre name.

app.userAgentFallback

Un string que es la cadena de agente de usuario Electron usará como una regresión global.

Este es el agente de usuario que se utilizará cuando ningún agente de usuario está establecido en el nivel webContents o session. Es útil para asegurar que la aplicación entera tiene el mismo agente de usuario. Establecer a un valor personalizado lo antes posible en la inicialización de tu aplicación para asegurar que el valor sobrescrito es usado.

app.runningUnderRosettaTranslation macOS Readonly Deprecated

A boolean which when true indicates that the app is currently running under the Rosetta Translator Environment.

You can use this property to prompt users to download the arm64 version of your application when they are running the x64 version under Rosetta incorrectly.

Obsoleto: Esta propiedad es reemplazada por la propiedad runningUnderARM64Translation la cual detecta cuando la aplicación esta traducida a ARM64 tanto en macOS y Windows.

app.runningUnderARM64Translation Readonly macOS Windows

Un boolean el cual cuando es true indica que la aplicación actualmente está ejecutándose bajo un traductor ARM64 (como el Rosetta Translator Environment de macOS o WOW de Windows).

You can use this property to prompt users to download the arm64 version of your application when they are running the x64 version under Rosetta incorrectly.