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:
event
launchInfo
Record<string, any> | NotificationResponse macOS
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 aNSUserActivity.activityType
.userInfo
unknown - Contiene el estado especifico de la aplicación guardado por la actividad en otro dispositivo.details
ObjectwebpageURL
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:
event
type
string - Es una cadena que identifica la actividad. Se mapea aNSUserActivity.activityType
.
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 aNSUserActivity.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 aNSUserActivity.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 aNSUserActivity.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:
event
window
BrowserWindow
Emitted when a browserWindow gets blurred.
Evento: 'browser-window-focus'
Devuelve:
event
window
BrowserWindow
Emitted when a browserWindow gets focused.
Evento: 'browser-window-created'
Devuelve:
event
window
BrowserWindow
Emitted when a new browserWindow is created.
Evento: 'web-contenido-creado'
Devuelve:
event
webContents
WebContents
Emitted when a new webContents is created.
Evento: 'error-certificado'
Devuelve:
event
webContents
WebContentsurl
stringerror
string - The error codecertificate
Certificatecallback
FunctionisTrusted
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:
event
webContents
WebContentsurl
URLcertificateList
Certificate[]callback
Functioncertificate
Certificate (optional)
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
Objecturl
URLpid
number
authInfo
ObjectisProxy
booleanscheme
stringhost
stringpuerto
Íntegrorealm
string
callback
Functionusername
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:
event
webContents
WebContentsdetails
RenderProcessGoneDetails
Emitido cuando el renderer process desaparece inesperadamente. Esto se debe comúnmente porque se crasheo o cerro.
Evento: 'child-process-gone'
Devuelve:
event
details
Objecttype
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 ceroabnormal-exit
- El proceso a finalizado con un exit code distinto de cerokilled
- El proceso a enviado un SIGTERM o se a finalizado externamentecrashed
- El proceso crasheooom
- El proceso se quedo sin memorialaunch-failed
- El proceso nunca se ha ejecutado correctamenteintegrity-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 contrariofalse
.
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:
session
Session
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 instanciaworkingDirectory
cadena - El directorio de trabajo de segunda instanciaadditionalData
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])
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])
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 theappData
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 bySession
, such as localStorage, cookies, disk cache, downloaded dictionaries, network state, devtools files. By default this points touserData
. 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 theuserData
directory.temp
Directorio temporal.exe
Archivo ejecutable en curso.module
La libreríalibchromiumcontent
.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
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
stringpath
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 enlaceselectron://
, llame este método conelectron
como el parámetro.path
string (opcional) Windows - La ruta al ejecutable de Electron. Por defecto aprocess.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 aprocess.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 aprocess.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 ejemplohttps://
).
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 ejemplohttps://
).
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 objetosTarea
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[] - ArrayJumpListItem
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 aapp.setJumpList()
, Windows no mostrará ninguna categoría personalizada que contenga alguno de los elementos removidos.
app.setJumpList(categories)
Windows
categories
JumpListCategory[] |null
- Array de objetosJumpListCategory
.
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ándarTasks
.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 aNSUserActivity.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 serhttp
ohttps
.
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 aNSUserActivity.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
callback
Functionresultado
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)
Configure la resolución de host (DNS y DNS-over-HTTPS). Por defecto, se utilizarán los siguientes resolutores en orden:
- DNS-over-HTTPS, si DNS provider supports it, luego
- el resolutor integrado (activado sólo por defecto en macOS), luego
- 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 serbasic
ocomplete
.
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
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 ofnot-registered
,enabled
,requires-approval
, ornot-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 deopenAtLogin
ya que ignora la opciónargs
, esta propiedad será verdadera si el ejecutable dado se iniciaría la iniciar sesión con cualquier argumento.launchItems
Object[] Windowsname
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 deuser
omachine
. Indica si la entrada del registro está bajoHKEY_CURRENT USER
oHKEY_LOCAL_MACHINE
.enabled
boolean Windows -true
si la llave del registro de la aplicación está en inicio aprobado y por lo tanto muestra comoenabled
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 esfalse
.openAsHidden
boolean (optional) macOS Deprecated -true
to open the app as hidden. Por defecto esfalse
. The user can edit this setting from the System Preferences soapp.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 esmainAppService
. 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’sContents/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’sContents/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’sContents/Library/LoginItems
directory.
serviceName
string (optional) macOS - The name of the service. Required iftype
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 aprocess.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 andenable / disable
the App in Task Manager and Windows Settings. Por defecto estrue
.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
enabled
boolean - Activa o desactiva el renderizado del árbol de accesibilidad
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)
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étodosdialog.showOpenDialog
odialog.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
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 disableSecure 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)
config
ProxyConfig
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 certificatetokenName
string - the token (or slot) name of the cryptographic deviceisRetry
boolean - whether there have been previous failed attempts at prompting the password
Returns
Promise<string>
- Resolves with the password - Objeto
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.