Saltar al contenido principal

app

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

Proceso: principal

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.

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. En macOS, launchInfo contiene el userInfo de la NSUserNotification o información de UNNotificationResponse que se utilizó para abrir la aplicación, si se lanzó desde el Centro de Notificaciones. También puedes llamar a app.isReady() para comprobar si este evento ya se ha disparado, y app.whenReady() para obtener una Promesa que se cumple cuando Electron se inicializa.

Note: The ready event is only fired after the main process has finished running the first tick of the event loop. If an Electron API needs to be called before the ready event, ensure that it is called synchronously in the top-level context of the main process.

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.

As with the open-file event, be sure to register a listener for the open-url event early in your application startup to detect if the application is being opened to handle a URL. If you register the listener in response to a ready event, you'll miss URLs that trigger the launch of your application.

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 se vuelve activa. Esto difiere del evento activate en que did-become-active se emite cada vez que la aplicación se vuelve activa, no solo cuando se hace clic en el ícono del Dock o se vuelve a iniciar la aplicación. También se emite cuando un usuario cambia a la aplicación a través del Selector de Aplicaciones de macOS.

Event: 'did-resign-active' macOS

Devuelve:

  • event

Emitido cuando la aplicación ya no está activa y no tiene el enfoque. Esto puede ser desencadenado, por ejemplo, al hacer clic en otra aplicación o al utilizar el Selector de Aplicaciones de macOS para cambiar a otra aplicación.

Event: 'continue-activity' macOS

Devuelve:

  • event
  • type string - Es una cadena que identifica la actividad. Se mapea 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) - Es una cadena que identifica la URL de la página web accedida por la actividad en otro dispositivo, si está disponible.

Emitido durante Handoff cuando una actividad de otro dispositivo desea ser retomada. 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.

Event: 'will-continue-activity' macOS

Devuelve:

Emitido durante Handoff antes de que una actividad de otro dispositivo desee ser retomada. Usted debe llamar event.preventDefault() si quiere manejar este evento.

Event: 'continue-activity-error' macOS

Devuelve:

  • event
  • type string - Es una cadena que identifica la actividad. Se mapea a NSUserActivity.activityType.
  • error string - Es una cadena con la descripción localizada del error.

Emitido durante Handoff cuando una actividad de otro dispositivo no se puede retomar correctamente.

Event: 'activity-was-continued' macOS

Devuelve:

  • event
  • type string - Es una cadena que identifica la actividad. Se mapea a NSUserActivity.activityType.
  • userInfo unknown - Contiene el estado específico de la aplicación guardado por la actividad.

Emitted during Handoff after an activity from this device was successfully resumed on another one.

Event: 'update-activity-state' macOS

Devuelve:

  • event
  • type string - Es una cadena que identifica la actividad. Se mapea a NSUserActivity.activityType.
  • userInfo unknown - Contiene el estado específico de la aplicación guardado por la actividad.

Emitted when Handoff is about to be resumed on another device. 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:

Emitted when a browserWindow gets blurred.

Evento: 'browser-window-focus'

Devuelve:

Emitted when a browserWindow gets focused.

Evento: 'browser-window-created'

Devuelve:

Emitted when a new browserWindow is created.

Evento: 'web-contenido-creado'

Devuelve:

Emitted when a new webContents is created.

Evento: 'error-certificado'

Devuelve:

  • event
  • webContents WebContents
  • url string
  • error string - The error code
  • certificate Certificate
  • callback Function
    • 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 (optional)
  • authenticationResponseDetails Object
    • url URL
    • pid number
  • authInfo Object
    • isProxy boolean
    • scheme string
    • host string
    • puerto Íntegro
    • realm string
  • callback Function
    • username string (optional)
    • password string (optional)

Emitted when webContents or Utility process wants to do basic auth.

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.

Event: 'gpu-info-update'

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

Evento: 'render-process-gone'

Devuelve:

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 - Tipo de proceso. Uno de los siguiente valores:
      • Utility
      • Zygote
      • Sandbox helper
      • GPU
      • Pepper Plugin
      • Pepper Plugin Broker
      • Unknown
    • reason string - La razón por la que se cerro el proceso hijo. 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 (opcional) - El nombre no localizado del proceso.
    • name string (opcional) - El nombre del proceso. 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 booleano - true cuando el soporte de accesibilidad de Chrome está activado, de lo contrario false.

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 cadena[] - Un arreglo de las líneas de argumentos de comandos de segunda instancia
  • workingDirectory cadena - El directorio de trabajo de segunda instancia
  • 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: argv will not be exactly the same list of arguments as those passed to the second instance. The order might change and additional arguments might be appended. If you need to maintain the exact same arguments, it's advised to use additionalData instead.

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 el 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, enfocar 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 luego de que se ocultaron. 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.
    • documents Directorio "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.
  • Iconos dentro del propio archivo, 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 la ruta a un directorio especial o un archivo asociado con el nombre. 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 sobre escribir rutas de de un nombre 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()

Regresa string - La versión de la aplicación cargada. Si ninguna versión es encontrada en el archivo package.json de la aplicación, la versión del ejecutable se regresa.

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. Generalmente debe especificar un Nombre del producto también, el cual es el nombre de su aplicación en mayúscula, y que será preferido por Electron sobre nombre.

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.

Note: This API must be called after the ready event is emitted.

Note: To see example return values of this API compared to other locale and language APIs, see app.getPreferredSystemLanguages().

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 la APIs nativas de 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.getSystemLocale()

Returns string - The current system locale. On Windows and Linux, it is fetched using Chromium's i18n library. On macOS, [NSLocale currentLocale] is used instead. To get the user's current system language, which is not always the same as the locale, it is better to use app.getPreferredSystemLanguages().

Different operating systems also use the regional data differently:

  • Windows 11 uses the regional format for numbers, dates, and times.
  • macOS Monterey uses the region for formatting numbers, dates, times, and for selecting the currency symbol to use.

Therefore, this API can be used for purposes such as choosing a format for rendering dates and times in a calendar app, especially when the developer wants the format to be consistent with the OS.

Note: This API must be called after the ready event is emitted.

Note: To see example return values of this API compared to other locale and language APIs, see app.getPreferredSystemLanguages().

app.getPreferredSystemLanguages()

Returns string[] - The user's preferred system languages from most preferred to least preferred, including the country codes if applicable. A user can modify and add to this list on Windows or macOS through the Language and Region settings.

The API uses GlobalizationPreferences (with a fallback to GetSystemPreferredUILanguages) on Windows, \[NSLocale preferredLanguages\] on macOS, and g_get_language_names on Linux.

This API can be used for purposes such as deciding what language to present the application in.

Here are some examples of return values of the various language and locale APIs with different configurations:

On Windows, given application locale is German, the regional format is Finnish (Finland), and the preferred system languages from most to least preferred are French (Canada), English (US), Simplified Chinese (China), Finnish, and Spanish (Latin America):

app.getLocale() // 'de'
app.getSystemLocale() // 'fi-FI'
app.getPreferredSystemLanguages() // ['fr-CA', 'en-US', 'zh-Hans-CN', 'fi', 'es-419']

On macOS, given the application locale is German, the region is Finland, and the preferred system languages from most to least preferred are French (Canada), English (US), Simplified Chinese, and Spanish (Latin America):

app.getLocale() // 'de'
app.getSystemLocale() // 'fr-FI'
app.getPreferredSystemLanguages() // ['fr-CA', 'en-US', 'zh-Hans-FI', 'es-419']

Both the available languages and regions and the possible return values differ between the two operating systems.

As can be seen with the example above, on Windows, it is possible that a preferred system language has no country code, and that one of the preferred system languages corresponds with the language used for the regional format. On macOS, the region serves more as a default country code: the user doesn't need to have Finnish as a preferred language to use Finland as the region,and the country code FI is used as the country code for preferred system languages that do not have associated countries in the language name.

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])

  • protocolo cadena - El nombre de su protocolo, sin el ://. 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

  • protocolo cadena - El nombre de su protocolo, sin el ://.
  • 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])

  • protocolo cadena - El nombre de su protocolo, sin el ://.
  • 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 - installation path of the app handling the protocol.
  • 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',
iconPath: process.execPath,
iconIndex: 0,
description: 'Runs Tool A'
},
{
type: 'task',
title: 'Tool B',
program: process.execPath,
args: '--run-tool-b',
iconPath: 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> (optional) - A JSON object containing additional data to send to the first instance.

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, BrowserWindow } = 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()
}
})

app.whenReady().then(() => {
myWindow = new BrowserWindow({})
myWindow.loadURL('https://electronjs.org')
})
}

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 mapea 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 mapea 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 Function
    • 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 (optional) - Can be 'off', 'automatic' or 'secure'. Configura el modo DNS-over-HTTP. When 'off', no DoH lookups will be performed. When 'automatic', DoH lookups will be performed first if DoH is available, and insecure DNS lookups will be performed as a fallback. When 'secure', only DoH lookups will be performed. Defaults to '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.

const { app } = require('electron')

app.whenReady().then(() => {
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 despues 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 despues 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 deviceId.

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.

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

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)
    • type string (optional) macOS - Can be one of mainAppService, agentService, daemonService, or loginItemService. Por defecto es mainAppService. Only available on macOS 13 and up. See app.setLoginItemSettings for more information about each type.
    • serviceName string (optional) macOS - The name of the service. Required if type is non-default. Only available on macOS 13 and up.
    • path string (opcional) Windows - La ruta del ejecutable contra la que comparar. Por defecto a process.execPath.
    • args string[] (optional) Windows - The command-line arguments to compare against. 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 Deprecated - true if the app is set to open as hidden at login. This does not work on macOS 13 and up.
  • wasOpenedAtLogin boolean macOS - true if the app was opened at login automatically.
  • wasOpenedAsHidden boolean macOS Deprecated - true if the app was opened as a hidden login item. Esto indica que la aplicación no debería abrir ninguna ventana al inicio. This setting is not available on MAS builds or on macOS 13 and up.
  • restoreState boolean macOS Deprecated - true if the app was opened as a login item that should restore the state from the previous session. This indicates that the app should restore the windows that were open the last time the app was closed. This setting is not available on MAS builds or on macOS 13 and up.
  • status string macOS - can be one of not-registered, enabled, requires-approval, or not-found.
  • 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 Deprecated - true to open the app as hidden. Por defecto es false. The user can edit this setting from the System Preferences so app.getLoginItemSettings().wasOpenedAsHidden should be checked when the app is opened to know the current value. This setting is not available on MAS builds or on macOS 13 and up.
    • type string (optional) macOS - The type of service to add as a login item. Por defecto es mainAppService. Only available on macOS 13 and up.
      • mainAppService - The primary application.
      • agentService - The property list name for a launch agent. The property list name must correspond to a property list in the app’s Contents/Library/LaunchAgents directory.
      • daemonService string (optional) macOS - The property list name for a launch agent. The property list name must correspond to a property list in the app’s Contents/Library/LaunchDaemons directory.
      • loginItemService string (optional) macOS - The property list name for a login item service. The property list name must correspond to a property list in the app’s Contents/Library/LoginItems directory.
    • serviceName string (optional) macOS - The name of the service. Required if type is non-default. Only available on macOS 13 and up.
    • 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 { app } = require('electron')
const path = require('node:path')

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"'
]
})

For more information about setting different services as login items on macOS 13 and up, see SMAppService.

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). This function runs asynchronously.

app.setAboutPanelOptions(options)

  • options Object
    • applicationName cadena (opcional) - El nombre de la aplicación.
    • applicationVersion cadena (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. On Windows, a 48x48 PNG will result in the best visual quality.

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.

const { app, dialog } = require('electron')
const fs = require('node:fs')

let filepath
let bookmark

dialog.showOpenDialog(null, { securityScopedBookmarks: true }).then(({ filePaths, bookmarks }) => {
filepath = filePaths[0]
bookmark = bookmarks[0]
fs.readFileSync(filepath)
})

// ... restart app ...

const stopAccessingSecurityScopedResource = app.startAccessingSecurityScopedResource(bookmark)
fs.readFileSync(filepath)
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. This means that all renderers will be launched sandboxed, regardless of the value of the sandbox flag in WebPreferences.

Este método solo puede ser llamado despues 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)
    • Función conflictHandler<boolean> (opcional) - Un controlador para el potencial conflicto en el fallo 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 preexisting 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:

const { app, dialog } = require('electron')

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.

app.setProxy(config)

Devuelve Promise<void> - Se resuelve cuando el proceso de configuración del proxy está completo.

Sets the proxy settings for networks requests made without an associated Session. Currently this will affect requests made with Net in the utility process and internal requests made by the runtime (ex: geolocation queries).

This method can only be called after app is ready.

app.resolveProxy(url)

  • url URL

Returns Promise<string> - Resolves with the proxy information for url that will be used when attempting to make requests using Net in the utility process.

app.setClientCertRequestPasswordHandler(handler) Linux

  • handler Function<Promise<string>>

    • Objeto clientCertRequestParams
      • hostname string - the hostname of the site requiring a client certificate
      • tokenName string - the token (or slot) name of the cryptographic device
      • isRetry boolean - whether there have been previous failed attempts at prompting the password

    Returns Promise<string> - Resolves with the password

The handler is called when a password is needed to unlock a client certificate for hostname.

const { app } = require('electron')

async function passwordPromptUI (text) {
return new Promise((resolve, reject) => {
// display UI to prompt user for password
// ...
// ...
resolve('the password')
})
}

app.setClientCertRequestPasswordHandler(async ({ hostname, tokenName, isRetry }) => {
const text = `Please sign in to ${tokenName} to authenticate to ${hostname} with your certificate`
const password = await passwordPromptUI(text)
return password
})

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 Readonly

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. Generalmente debe especificar un Nombre del producto también, el cual es el nombre de su aplicación en mayúscula, y que será preferido por Electron sobre nombre.

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.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 mistakenly running the x64 version under Rosetta or WOW.