BaseWindow
Crear y controlar ventanas.
Process: Main
BaseWindow proporciona una manera flexible para componer vistas de
web multi compuestas en una ventana única. Para ventanas con solo una vista web simple, vista de
web a tamaño completo, la clase BrowserWindow
puede ser una opción más simple.
This module cannot be used until the ready event of the app
module is emitted.
// En el proceso principal.
const { BaseWindow, WebContentsView } = require('electron')
const win = new BaseWindow({ width: 800, height: 600 })
const leftView = new WebContentsView()
leftView.webContents.loadURL('https://electronjs.org')
win.contentView.addChildView(leftView)
const rightView = new WebContentsView()
rightView.webContents.loadURL('https://github.com/electron/electron')
win.contentView.addChildView(rightView)
leftView.setBounds({ x: 0, y: 0, width: 400, height: 600 })
rightView.setBounds({ x: 400, y: 0, width: 400, height: 600 })
Ventana principal y ventana secundaria
Al usar la opción parent, se pueden crean ventanas heredadas:
const { BaseWindow } = require('electron')
const parent = new BaseWindow()
const child = new BaseWindow({ parent })
La ventana child siempre mostrará en la parte superior de la ventana parent.
Ventanas modales
Una ventana modal es una ventana heredada que deshabilita
la ventana antecesora. Para crear una ventana
modal, tienes que configurar las opciones parent y modal:
const { BaseWindow } = require('electron')
const parent = new BaseWindow()
const child = new BaseWindow({ parent, modal: true })
Notas según la plataforma
- En macOS las ventanas modales se mostrarán como hojas adjuntas a la ventana principal.
- En macOS las ventanas heredadas mantendrán la posición relativa a la ventana antecesora cuando ésta se mueve, mientras que en Windows y Linux las ventanas secundarias no se moverán.
- En Linux el tipo de ventanas modales se cambiará a
dialog. - En Linux, muchos entornos de escritorio no admiten ocultar una ventana modal.
Gestión de recursos
Cuando añades un WebContentsView a una BaseWindow y el BaseWindow
está cerrado, el webContents del WebContentsView no se destruye
automáticamente.
Es tu responsabilidad cerrar el webContents cuando ya no los necesites, por ejemplo, cuando
el BaseWindow está cerrado:
const { BaseWindow, WebContentsView } = require('electron')
const win = new BaseWindow({ width: 800, height: 600 })
const view = new WebContentsView()
win.contentView.addChildView(view)
win.on('closed', () => {
view.webContents.close()
})
A diferencia de un BrowserWindow, si no cierras explícitamente el
webContents, encontrarás pérdidas de memoria.
Clase: BaseWindow
Crear y controlar ventanas.
Process: Main
BaseWindow es una EventEmitter.
It creates a new BaseWindow with native properties as set by the options.
Electron's built-in classes cannot be subclassed in user code. For more information, see the FAQ.
new BrowserWindow([opciones])
Eventos de Instancia
Los objetos creados con new BaseWindow emiten los eventos a continuación:
Algunos eventos sólo están disponibles en sistemas operativos específicos y son etiquetados como tal.
Evento: "close"
Devuelve:
eventEvento
Aparece cuando la ventana se va a cerrar. Se emite antes del evento del DOM beforeunload y unload. Llamar a event.preventDefault() cancelará el cierre.
Usualmente se desea utilizar el controlador beforeunload para decidir si la ventana debería ser cerrada, el cual también será llamado cuando la ventada se vuelva a cargar. En Electron, devolver cualquier valor que no sea undefined cancelaría el cierre. Por ejemplo:
window.onbeforeunload = (e) => {
consola. og('No quiero ser cerrado')
// A diferencia de los navegadores habituales que un cuadro de mensaje será enviado
// a los usuarios. devolver un valor no vacío cancelará silenciosamente el cierre.
// Se recomienda usar la API de diálogo para permitir al usuario confirmar el cierre de aplicación.
e.returnValue = false
}
Hay una diferencia sutil entre el comportamiento de window.onbeforeunload = handler y window.addEventListener('beforeunload', handler). Se recomienda siempre establecer el
event.returnValue explícitamente, en lugar de devolver sólo un valor, ya que el primero
funciona más consistentemente dentro de Electron.
Evento: "closed"
Emitted when the window is closed. Después de haber recibido este evento, debe eliminar la referencia a la ventana y evitar volverla a usar.
Evento: 'query-session-end' Windows
Devuelve:
eventWindowSessionEndEvent
Emitido cuando una sesión está a punto de terminar debido a un apagado, reinicio de máquina, o cierre de sesión del usuario.
Invoca a event.preventDefault() puede retrasar el apagado del sistema, aunque generalmente
es mejor respetar la elección del usuario de finalizar la sesión. Sin embargo, puedes elegir usarlo si
termina la sesión pone al usuario en riesgo de perder datos.
Evento: 'session-end' Windows
Devuelve:
eventWindowSessionEndEvent
Emitido cuando una sesión está a punto de terminar debido a un apagado, reinicio de máquina, o cierre de sesión del usuario. Una vez que este evento se dispare, no hay forma de evitar que la sesión termine.
Evento: "blur"
Devuelve:
eventEvento
Aparece cuando la ventana pierde el enfoque.
Evento: "focus"
Devuelve:
eventEvento
Aparece cuando la ventana recupera el enfoque.
Evento: "show"
Aparece cuando se muestra la ventana.
Evento: "hide"
Aparece cuando se oculta la ventana.
Evento: "maximize"
Aparece cuando se maximiza la ventana.
Evento: "unmaximize"
Aparece cuando la ventana sale de un estado maximizado.
Evento: "minimize"
Aparece cuando se minimiza la ventana.
En Wayland, "minimized" no es actualmente un estado compatible. El evento minimizar solo se disparará cuando se active con la decoración del lado del cliente (por ejemplo, hacer clic en el botón minimizar en una ventana sin marco de control de ventana)
Evento: "restore"
Aparece cuando se restaura la ventana de un estado minimizado.
Evento: 'will-resize' macOS Windows
Devuelve:
eventEventonewBoundsRectangle - Tamaño al que se está redimensionando la ventana.- Objeto
detailsedge(string) - El borde de la ventana siendo arrastrada para cambiar el tamaño. Puede serbottom,left,right,top-left,top-right,bottom-leftobottom-right.
Emitido antes de que la ventana sea redimensionada. Invoca a event.preventDefault() evitará que la ventana sea redimensionada.
Tenga en cuenta que esto solo es emitido cuando la venta está siendo redimensionada de forma manual. Redimensionar la ventana con setBounds/setSize no emitirá este evento.
Los posibles valores y comportamientos de la opción edge dependen de la plataforma. Los valores posibles son:
- En Windows, los valores posibles son
bottom,top,left,right,top-left,top-right,bottom-left,bottom-right. - En macOS, los posibles valores son
bottomyright.- El valor
bottomes usado para denotar un cambio de tamaño vertical. - El valor
rightes usado para denotar un cambio de tamaño horizontal.
- El valor
Evento: "resize"
Emitido después que la ventana se haya redimensionada.
Evento: 'resized' macOS Windows
Emitted once when the window has finished being resized.
This is usually emitted when the window has been resized manually. En macOS, cambiar el tamaño de la ventana con setBounds/setSize y establecer el parámetro animate a true también emitirá este evento una vez que haya finalizado el tamaño.
Evento: 'will-move' macOS Windows
Devuelve:
eventEventonewBoundsRectangle - Lugar en la ventana está siendo a la que se está trasladando.
Emitted before the window is moved. En Windows, invoca a event.preventDefault() prevenirá que la ventana se traslade.
Note that this is only emitted when the window is being moved manually. Mover la ventana con setPosition/setBounds/center no emitirá este evento.
Evento: "move"
Aparece cuando la ventana se mueve a una nueva posición.
Evento: 'moved' macOS Windows
Aparece solo una vez cuando la ventana se mueve a una nueva posición.
En macOS, este evento es un alias de move.
Evento: "enter-full-screen"
Aparece cuando la ventana entra en un estado pantalla completa.
Evento: "leave-full-screen"
Aparece cuando la ventana sale del estado pantalla completa.
Evento: 'always-on-top-changed'
Devuelve:
eventEventoisAlwaysOnTopboolean
Emitido cuando la ventana es configurada o no configurada para mostrarse siempre en la parte superior de las otras ventanas.
Event: 'app-command' Windows Linux
Devuelve:
eventEventocommandstring
Emitido cuando un Comando de aplicación es invocado. Estos están generalmente relacionados a las teclas del teclado o a los comandos del navegador, así como el botón "Back" está en algunos ratones en Windows.
Los comandos están en minúscula, los guiones bajos son remplazados por guiones, y el prefijo APPCOMMAND_ está recortado.
por ejemplo. APPCOMMAND_BROWSER_BACKWARD es emitido como browser-backward.
const { BaseWindow } = require('electron')
const win = new BaseWindow()
win.on('app-command', (e, cmd) => {
// Cuando el usuario pulse el botón de retroceso del ratón, la ventana volverá a la normalidad.
if (cmd === 'browser-backward') {
// Encuentre el contenido web adecuado para navegar.
}
})
Los siguientes comandos de aplicación están explícitamente soportados en Linux:
browser-backwardbrowser-forward
Event: 'swipe' macOS
Devuelve:
eventEventodirectionstring
Emitted on 3-finger swipe. Las direcciones posibles son up, right, down, left.
El método subyacente a este evento esta construido para manejar el viejo estilo de desplazamiento del trackpad de macOS, donde el contenido de la pantalla no se mueve con el manotazo. La mayoría de los trackpad de macOS ya no están configurados para permitir este tipo de movimiento, así que para emitir correctamente la preferencia 'Desplazamiento entre páginas' en System Preferences > Trackpad > More Gestures debe establecer a 'Desplazar con dos o tres dedos'.
Event: 'rotate-gesture' macOS
Devuelve:
eventEventorotationFloat
Emitido en el gesto de rotación de trackpad. Continuamente emitido hasta que el gesto de rotación se termine. El valor de rotation en cada emisión es el ángulo en grados rotados desde
la última emisión. El último evento emitido sobre un gesto de rotación será siempre de valor 0. Los valores de rotación en sentido antihorario son positivos, mientras que los valores de rotación en sentido horario son negativos.
Evento: 'sheet-begin' macOS
Aparece cuando la ventana abre una hoja.
Evento: 'sheet-end' macOS
Aparece cuando la ventana cierra una hoja.
Evento: 'new-window-for-tab' macOS
Emitido cuando el usuario hace clic en el botón de nueva pestaña nativa de macOS. El botón de pestaña nueva solo es visible si el BrowserWindow actual tiene un tabbingIdentifier.
You must create a window in this handler in order for macOS tabbing to work as expected.
Evento: 'system-context-menu' Windows Linux
Devuelve:
eventEventopointPoint - La pantalla coordenada donde se disparó el menú contextual.
Emitido cuando el menú contextual del sistema es activado en la ventana, esto normalmente solo es activado cuando el usuario hace click derecho en el área que no es del cliente de la ventana. Esto es la barra de titulo de la ventana o cualquier área que haya declarado como -webkit-app-region: drag en una ventana sin marco.
Invoca a event.preventDefault() prevendrá que el menú sea exhibido.
Para convertir point a DIP, emplee screen.screenToDipPoint(point).
Métodos Estáticos
La clase BaseWindow tiene los métodos estáticos a continuación:
BaseWindow.getAllWindows()
Devuelve BaseWindow[] - Una matriz de todas las ventanas abiertas del navegador.
BaseWindow.getFocusedWindow()
Devuelve BaseWindow | null - La ventana que está enfocada en esta aplicación, de lo contrario devuelve null.
BaseWindow.fromId(id)
idInteger
Devuelve BrowserWindow | null -La ventana con la id especificada`.
Propiedades de la instancia
Los objetos creados con new BrowserWindow tienen las siguientes propiedades:
const { BaseWindow } = require('electron')
// En este ejemplo `win` es nuestra instancia
const win = new BrowserWindow({width: 800, height: 600})
win.id Readonly
Una propiedad Integer representando el ID único de la ventana. Cada ID es único entre todas las instancias de toda la aplicación Electron.
win.contentView
Una propiedad View para la vista de contenido de la ventana.
win.tabbingIdentifier macOS Readonly
Una propiedad string (opcional) que es igual al tabbingIdentifier pasado al constructor BrowserWindow o undefined si no se estableció ninguno.
win.autoHideMenuBar Linux Windows
Una propiedad boolean que determina si la barra de menú de la ventana debe ocultarse automáticamente. Una vez puesto la barra de menú solamente se mostrará cuando los usuarios presionen únicamente la tecla Alt.
Si la barra de menú ya está visible, estableciendo esta propiedad a true no la ocultara inmediatamente.
win.simpleFullScreen
Una propiedad boolean que determina si la ventana está en modo simple (pre-León) de pantalla completa.
win.fullScreen
Una propiedad boolean que determina si la ventana está en modo a pantalla completa.
win.focusable Windows macOS
Una propiedad Boolean que determina si la ventana es enfocable.
win.visibleOnAllWorkspaces macOS Linux
Una propiedad boolean que determina si la ventana está visible en todos los espacios de trabajo.
Devuelve siempre falso en Windows.
win.shadow
Una propiedad Boolean que determina si la ventana tiene una sombra.
win.menuBarVisible Windows Linux
Una propiedad Boolean que determina si la ventana es enfocable.
[!NOTA] Si la barra del menú está auto-ocultada, los usuarios aún pueden traer la barra del menú presionanado la tecla
Altúnicamente.
win.kiosk
Una propiedad boolean que determina si la ventana está en modo a kiosko.
win.documentEdited macOS
Una propiedad boolean que especifica si el documento de la ventana ha sido editado.
El icono en la barra de título se volverá gris cuando se establezca en true.
win.representedFilename macOS
Una propiedad string que determina el nombre de ruta del archivo que representa la ventana,
y el icono del archivo se mostrará en la barra de título de la ventana.
win.title
Una propiedad string que determina el título de la ventana nativa.
[!NOTA] El título de la página web puede ser diferente del título de la ventana nativa.
win.minimizable macOS Windows
Una propiedad boolean que determina si la ventana puede minimizarse manualmente por el usuario.
En Linux el setter es un no-op, aunque el getter devuelve true.
win.maximizable macOS Windows
Una propiedad boolean que determina si la ventana puede ser maximizada manualmente por el usuario.
En Linux el setter es un no-op, aunque el getter devuelve true.
win.fullScreenable
Una propiedad boolean que determina si el botón maximizar/zoom de la ventana activa el modo de pantalla
completa o maximiza la ventana.
win.resizable
Una propiedad boolean que determina si la ventana puede ser redimensionado manualmente por el usuario.
win.closable macOS Windows
Una propiedad boolean que determina si la ventana puede ser cerrado manualmente por el usuario.
En Linux el setter es un no-op, aunque el getter devuelve true.
win.movable macOS Windows
Una propiedad boolean que determina si la ventana puede ser trasladada por el usuario.
En Linux el setter es un no-op, aunque el getter devuelve true.
win.excludedFromShownWindowsMenu macOS
Una propiedad boolean que determina si la ventana está excluida del menú Windows de la aplicación. false por defecto.
const { Menu, BaseWindow } = require('electron')
const win = new BaseWindow({ height: 600, width: 600 })
const template = [
{
role: 'windowmenu'
}
]
win.excludedFromShownWindowsMenu = true
const menu = Menu.buildFromTemplate(template)
Menu.setApplicationMenu(menu)
win.accessibleTitle
Una propiedad de string que define un título alternativo proporcionado solo para herramientas de accesibilidad tales como lectores de pantalla. Esta cadena no es directamente visible para los usuarios.
win.snapped Windows Readonly
Una propiedad boolean que indica si la ventana está organizada a través de Snap.
Métodos de Instancia
Los objetos creados con new BaseWindow tienen los siguientes métodos de instancia:
Algunos eventos sólo están disponibles en sistemas operativos específicos y son etiquetados como tal.
win.setContentView(view)
viewView
Establece la vista de contenido de la ventana.
win.getContentView()
Devuelve Ver - La vista de contenido de la ventana.
win.destroy()
Forzar el cierre de la ventana, el evento unload y beforeunload no se emitirá
para la página web, y el evento close tampoco se emitirá
para esta ventana, pero garantiza que el evento closed será emitido.
win.close()
Trate de cerrar la ventana. Esto tiene el mismo efecto que un usuario pulsando manualmente el botón cerrar de la ventana. The web page may cancel the close though. Consulte el evento cerrado.
win.focus()
Enfoca la ventana.
win.blur()
Elimina el enfoque de la ventana.
win.isFocused()
Returns boolean - Si la ventana está enfocada.
win.isDestroyed()
Devuelve boolean - Si la ventana está destruida.
win.show()
Muestra la ventana y la enfoca.
win.showInactive()
Muestra la ventana pero no la enfoca.
win.hide()
Oculta la ventana.
win.isVisible()
Devuelve boolean - Si la ventana es visible para el usuario en el primer plano de la aplicación.
win.isModal()
Devuelve boolean - Si la ventana actual es una ventana modal.
win.maximize()
Maximiza la ventana. This will also show (but not focus) the window if it isn't being displayed already.
win.unmaximize()
Sale del estado maximizado de la ventana.
win.isMaximized()
Devuelve boolean - Si la ventana está maximizada.
win.minimize()
Minimiza la ventana. On some platforms the minimized window will be shown in the Dock.
win.restore()
Restaura la ventana desde un estado minimizado a su estado previo.
win.isMinimized()
Devuelve boolean - Si la ventana está minimizada.
win.setFullScreen(flag)
flagboolean
Establece si la ventana debe estar o no en modo pantalla completa.
En macOS, las transiciones de pantalla completa tienen lugar de forma asíncrona. Si otras acciones dependen del estado de pantalla completa, usa los eventos 'enter-full-screen' o > 'leave-full-screen'.
win.isFullScreen()
Devuelve boolean - Si la ventana está en modo a pantalla completa.
win.setSimpleFullScreen(flag) macOS
flagboolean
Entra o sale del modo simple de pantalla completa.
Simple fullscreen mode emulates the native fullscreen behavior found in versions of macOS prior to Lion (10.7).
win.isSimpleFullScreen() macOS
Devuelve boolean - Si la ventana está en modo a pantalla completa (pre-Lion).
win.isNormal()
Devuelve boolean - Si la ventana está en el estado normal (ni maximizada, ni minimizada, ni en modo de pantalla completa).
win.setAspectRatio(aspectRatio[, extraSize])
aspectRatioFloat - La relación de aspecto para mantener alguna porción de la vista de contenido.extraSizeSize (opcional) macOS - El tamaño extra no se incluye mientras mantiene la relación de aspecto.
Esto hará que la ventana mantenga una relación de aspecto. El tamaño extra permite al desarrollador tener espacio especificado en píxeles, el cual no está incluido dentro de los cálculos de la relación de aspecto. Esta API ya toma en cuenta la diferencia entre el tamaño de la ventana y el tamaño del contenido.
Considere una ventana normal con un reproductor de video HD y los controles asociados. Quizá hay 15 pixeles de controles en el borde izquierdo, 25 pixeles de control en el borde derecho y 50 pixeles de control bajo el reproductor. Para mantener una relación de aspecto 16:9 (relación de aspecto estándar para HD @1920×1080) dentro del reproductor tendríamos que llamar esta función con argumentos de 16/9 y { width: 40, height: 50 }. En el segundo argumento no importa donde están la anchura extra ni altura extra dentro de la vista del contenido, solo importa que existan. Suma cualquier áreas de ancho y alto adicionales que tengas dentro de la vista de contenido general.
La relación de aspecto no se respeta cuando la ventana se redimensiona programáticamente con las
API como win.setSize.
Para restablecer una relación de aspecto, pase 0 como el valor aspectRatio: win.setAspectRatio(0).
win.setBackgroundColor(backgroundColor)
backgroundColorstring - Color en Hex, RGB, RGBA, HSL, HSLA o llamado formato de color CSS. The alpha channel is optional for the hex type.
Ejemplos de valores válidos backgroundColor:
- Hex
- #fff (shorthand RGB)
- #ffff (shorthand ARGB)
- #ffffff (RGB)
- #ffffffff (ARGB)
- RGB
rgb\(([\d]+),\s*([\d]+),\s*([\d]+)\)- ej. rgb(255, 255, 255)
- RGBA
rgba\(([\d]+),\s*([\d]+),\s*([\d]+),\s*([\d.]+)\)- ej. rgba(255, 255, 255, 1.0)
- HSL
hsl\((-?[\d.]+),\s*([\d.]+)%,\s*([\d.]+)%\)- ej. hsl(200, 20%, 50%)
- HSLA
hsla\((-?[\d.]+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)- ej. hsla(200, 20%, 50%, 0.5)
- Nombre de color
- Options are listed in SkParseColor.cpp
- Similar a las palabras clave del Módulo de Color CSS Nivel 3, pero sensible a mayúsculas y minúsculas.
- e.g.
bluevioletorred
- e.g.
Establece el color de fondo de la ventana. Consulte Ajustar backgroundColor.
win.previewFile(path[, displayName]) macOS
rutastring - La ruta absoluta al archivo para vista previa con QuickLook. Esta es importante ya que Quick Look utiliza el nombre del archivo y la extensión del archivo en la ruta para determinar el tipo de contenido del archivo a abrir.displayNamestring (opcional) - El nombre del archivo a mostrar en la vista modal de Quick Look, apariencia rápida. Esto es puramente visual y no afecta el tipo de contenido del archivo. Por defecto espath.
Utiliza Quick Look para vista previa de un archivo en una ruta dada.
win.closeFilePreview() macOS
Cierra el panel actualmente [Quick Look][quicl-look] abierto.
win.setBounds(bounds[, animate])
boundsParcial<Rectángulo>animateboolean (opcional) macOS
Redimensiona y mueve la ventana a los límites proporcionados. Cualquier propiedad que no se proporcione tendrá sus valores actuales por defecto.
const { BaseWindow } = require('electron')
const win = new BaseWindow()
// establece todas las propiedades acotadas
win.setBounds({ x: 440, y: 225, width: 800, height: 600 })
// establece una propiedad de acotaciones simples
win.setBounds({ width: 100 })
// { x: 440, y: 225, width: 100, height: 600 }
console.log(win.getBounds())
En macOS, el valo de la cooredena-y no puede ser más pequeña que la altura de Bandeja. The tray height has changed over time and depends on the operating system, but is between 20-40px. Passing a value lower than the tray height will result in a window that is flush to the tray.
win.getBounds()
Devuelve Rectángulo - Las acotaciones de la ventana como Object.
On macOS, the y-coordinate value returned will be at minimum the Tray height. For example, calling win.setBounds({ x: 25, y: 20, width: 800, height: 600 }) with a tray height of 38 means that win.getBounds() will return { x: 25, y: 38, width: 800, height: 600 }.
On Wayland, this method will return { x: 0, y: 0, ... } as introspecting or programmatically changing the global window coordinates is prohibited.
win.getBackgroundColor()
Returns string - Gets the background color of the window in Hex (#RRGGBB) format.
Consulte Ajustar backgroundColor.
The alpha value is not returned alongside the red, green, and blue values.
win.setContentBounds(bounds[, animate])
boundsRectangleanimateboolean (opcional) macOS
Redimensiona y mueve el área del cliente de la ventana (por ejemplo, la página web) hasta los límites proporcionados.
win.getContentBounds()
Returns Rectangle - The bounds of the window's client area as Object.
win.getNormalBounds()
Returns Rectangle - Contains the window bounds of the normal state
Whatever the current state of the window : maximized, minimized or in fullscreen, this function always returns the position and size of the window in normal state. In normal state, getBounds and getNormalBounds returns the same Rectangle.
win.setEnabled(enable)
enableboolean
Habilita o deshabilita la ventana.
win.isEnabled()
Returns boolean - whether the window is enabled.
win.setSize(width, height[, animate])
widthIntegerheightIntegeranimateboolean (opcional) macOS
Resizes the window to width and height. If width or height are below any set minimum size constraints the window will snap to its minimum size.
win.getSize()
Returns Integer[] - Contains the window's width and height.
win.setContentSize(width, height[, animate])
widthIntegerheightIntegeranimateboolean (opcional) macOS
Resizes the window's client area (e.g. the web page) to width and height.
win.getContentSize()
Returns Integer[] - Contains the window's client area's width and height.
win.setMinimumSize(width, height)
widthIntegerheightInteger
Sets the minimum size of window to width and height.
win.getMinimumSize()
Returns Integer[] - Contains the window's minimum width and height.
win.setMaximumSize(width, height)
widthIntegerheightInteger
Sets the maximum size of window to width and height.
win.getMaximumSize()
Returns Integer[] - Contains the window's maximum width and height.
win.setResizable(resizable)
resizableboolean
Sets whether the window can be manually resized by the user.
win.isResizable()
Returns boolean - Whether the window can be manually resized by the user.
win.setMovable(movable) macOS Windows
movableboolean
Sets whether the window can be moved by user. En Linux no hace nada.
win.isMovable() macOS Windows
Returns boolean - Whether the window can be moved by user.
On Linux always returns true.
win.setMinimizable(minimizable) macOS Windows
minimizableboolean
Sets whether the window can be manually minimized by user. En Linux no hace nada.
win.isMinimizable() macOS Windows
Returns boolean - Whether the window can be manually minimized by the user.
On Linux always returns true.
win.setMaximizable(maximizable) macOS Windows
maximizableboolean
Sets whether the window can be manually maximized by user. En Linux no hace nada.
win.isMaximizable() macOS Windows
Returns boolean - Whether the window can be manually maximized by user.
On Linux always returns true.
win.setFullScreenable(fullscreenable)
fullscreenableboolean
Sets whether the maximize/zoom window button toggles fullscreen mode or maximizes the window.
win.isFullScreenable()
Returns boolean - Whether the maximize/zoom window button toggles fullscreen mode or maximizes the window.
win.setClosable(closable) macOS Windows
closableboolean
Sets whether the window can be manually closed by user. En Linux no hace nada.
win.isClosable() macOS Windows
Returns boolean - Whether the window can be manually closed by user.
On Linux always returns true.
win.setHiddenInMissionControl(hidden) macOS
hiddenboolean
Sets whether the window will be hidden when the user toggles into mission control.
win.isHiddenInMissionControl() macOS
Returns boolean - Whether the window will be hidden when the user toggles into mission control.
win.setAlwaysOnTop(flag[, level][, relativeLevel])
flagbooleanlevelstring (optional) macOS Windows - Values includenormal,floating,torn-off-menu,modal-panel,main-menu,status,pop-up-menu,screen-saver, and(Deprecated). The default isdockfloatingwhenflagis true. Thelevelis reset tonormalwhen the flag is false. Note that fromfloatingtostatusincluded, the window is placed below the Dock on macOS and below the taskbar on Windows. Frompop-up-menuto a higher it is shown above the Dock on macOS and above the taskbar on Windows. See the macOS docs for more details.relativeLevelInteger (optional) macOS - The number of layers higher to set this window relative to the givenlevel. The default is0. Note that Apple discourages setting levels higher than 1 abovescreen-saver.
Sets whether the window should show always on top of other windows. Después de configurar esto, la ventana seguirá siendo una ventana normal, y no una ventana de herramientas que no puede enfocarse.
win.isAlwaysOnTop()
Returns boolean - Whether the window is always on top of other windows.
win.moveAbove(mediaSourceId)
mediaSourceIdstring - Window id in the format of DesktopCapturerSource's id. Por ejemplo "window:1869:0".
Moves window above the source window in the sense of z-order. If the
mediaSourceId is not of type window or if the window does not exist then
this method throws an error.
win.moveTop()
Mover ventana a la parte superior(z-order) independientemente del enfoque
win.center()
Mueve la ventana al centro de la pantalla.
win.setPosition(x, y[, animate])
xIntegeryIntegeranimateboolean (opcional) macOS
Moves window to x and y.
win.getPosition()
Returns Integer[] - Contains the window's current position.
On Wayland, this method will return [0, 0] as introspecting or programmatically changing the global window coordinates is prohibited.
win.setTitle(title)
titlestring
Changes the title of native window to title.
win.getTitle()
Returns string - The title of the native window.
The title of the web page can be different from the title of the native window.
win.setSheetOffset(offsetY[, offsetX]) macOS
offsetYFloatoffsetXFloat (optional)
Changes the attachment point for sheets on macOS. By default, sheets are attached just below the window frame, but you may want to display them beneath a HTML-rendered toolbar. Por ejemplo:
const { BaseWindow } = require('electron')
const win = new BaseWindow()
const toolbarRect = document.getElementById('toolbar').getBoundingClientRect()
win.setSheetOffset(toolbarRect.height)
win.flashFrame(flag)
History
| Version(s) | Changes |
|---|---|
None |
|
None | API ADDED |
flagboolean
Empieza y deja de hacer parpadear la ventana para atraer la atención del usuario.
win.setSkipTaskbar(skip) macOS Windows
skipboolean
Hace que la ventana no se muestre en la barra de tareas.
win.setKiosk(flag)
flagboolean
Entra / sale del modo Kiosko.
win.isKiosk()
Returns boolean - Whether the window is in kiosk mode.
win.isTabletMode() Windows
Returns boolean - Whether the window is in Windows 10 tablet mode.
Since Windows 10 users can use their PC as tablet, under this mode apps can choose to optimize their UI for tablets, such as enlarging the titlebar and hiding titlebar buttons.
This API returns whether the window is in tablet mode, and the resize event
can be used to listen to changes to tablet mode.
win.getMediaSourceId()
Returns string - Window id in the format of DesktopCapturerSource's id. Por ejemplo "window:1324:0".
More precisely the format is window:id:other_id where id is HWND on
Windows, CGWindowID (uint64_t) on macOS and Window (unsigned long) on
Linux. other_id is used to identify web contents (tabs) so within the same
top level window.
win.getNativeWindowHandle()
Returns Buffer - The platform-specific handle of the window.
The native type of the handle is HWND on Windows, NSView* on macOS, and
Window (unsigned long) on Linux.
win.hookWindowMessage(message, callback) Windows
messageIntegercallbackFunctionwParamBuffer - ThewParamprovided to the WndProclParamBuffer - ThelParamprovided to the WndProc
Engancha una ventana de mensaje. The callback is called when
the message is received in the WndProc.
win.isWindowMessageHooked(message) Windows
messageInteger
Returns boolean - true or false depending on whether the message is hooked.
win.unhookWindowMessage(message) Windows
messageInteger
Desancla el mensaje de la ventana.
win.unhookAllWindowMessages() Windows
Desancla todos los mensajes de la ventana.
win.setRepresentedFilename(filename) macOS
filenamestring
Establece el nombre de la ruta del archivo que la ventana representa, y el icono del archivo se mostrará en la barra de título de la ventana.
win.getRepresentedFilename() macOS
Returns string - The pathname of the file the window represents.
win.setDocumentEdited(edited) macOS
editedboolean
Specifies whether the window’s document has been edited, and the icon in title
bar will become gray when set to true.
win.isDocumentEdited() macOS
Returns boolean - Whether the window's document has been edited.
win.setMenu(menu) Linux Windows
menuMenu | null
Sets the menu as the window's menu bar.
win.removeMenu() Linux Windows
Eliminar la barra de menú de la ventana.
win.setProgressBar(progress[, options])
progressDouble
Establece el valor del progreso en el progress bar. Valid range is [0, 1.0].
Elimina la barra de progreso cuando el progreso es < 0; cambia a modo indeterminado cuando el progreso es >1.
On Linux platform, only supports Unity desktop environment, you need to specify
the *.desktop file name to desktopName field in package.json. By default,
it will assume {app.name}.desktop.
En Windows, se puede pasar de modo. Accepted values are none, normal,
indeterminate, error, and paused. If you call setProgressBar without a
mode set (but with a value within the valid range), normal will be assumed.
win.setOverlayIcon(overlay, description) Windows
overlayNativeImage | null - the icon to display on the bottom right corner of the taskbar icon. If this parameter isnull, the overlay is cleareddescriptionstring - a description that will be provided to Accessibility screen readers
Establece una superposición de 16 x 16 píxeles sobre el icono actual de la barra de tareas. Generalmente se utiliza para transmitir algún tipo de estatus de la aplicación o para notificar pasivamente al usuario.
win.invalidateShadow() macOS
Invalidates the window shadow so that it is recomputed based on the current window shape.
BaseWindows that are transparent can sometimes leave behind visual artifacts on macOS.
This method can be used to clear these artifacts when, for example, performing an animation.
win.setHasShadow(hasShadow)
hasShadowboolean
Establece si la ventana debe tener una sombra.
win.hasShadow()
Returns boolean - Whether the window has a shadow.
win.setOpacity(opacity) Windows macOS
opacitynumber - between 0.0 (fully transparent) and 1.0 (fully opaque)
Establece la opacidad de la ventana. En Linux no hace nada. Out of bound number values are clamped to the [0, 1] range.
win.getOpacity()
Returns number - between 0.0 (fully transparent) and 1.0 (fully opaque). En Linux, siempre devuelve 1.
win.setShape(rects) Windows Linux Experimental
rectsRectangle[] - Sets a shape on the window. Passing an empty list reverts the window to being rectangular.
Establecer una forma de ventana determina el área dentro de la ventana donde el sistema permite dibujar y interactuar con el usuario. Fuera de la región dada, no se dibujarán píxeles y no se registrarán eventos del ratón. Los eventos del ratón fuera de la región no será recibida por esa ventana, pero pasará a lo que esté detrás de la misma.
win.setThumbarButtons(buttons) Windows
buttonsThumbarButton[]
Returns boolean - Whether the buttons were added successfully
Añade la barra de herramientas de la vista previa con una configuración específica de los botones para la imagen previsualizada de una ventana en el plano del botón en la barra de tareas. Returns a boolean object indicates
whether the thumbnail has been added successfully.
El número de botones en la barra de herramientas de la vista previa no debe ser mayor que 7 debido al limitado espacio. Una vez que se configura la barra de herramientas de la vista previa, la barra de tareas no puede ser eliminada debido a las limitaciones de la plataforma. Sin embargo, se puede llamar a la API con un arreglo vacío para limpiar los botones.
The buttons is an array of Button objects:
ButtonObjecticonNativeImage - The icon showing in thumbnail toolbar.clickFunctiontooltipstring (optional) - The text of the button's tooltip.flagsstring[] (optional) - Control specific states and behaviors of the button. By default, it is['enabled'].
El flags es un array que puede incluir las cadenas string siguientes:
enabled- The button is active and available to the user.disabled- The button is disabled. It is present, but has a visual state indicating it will not respond to user action.dismissonclick- When the button is clicked, the thumbnail window closes immediately.nobackground- Do not draw a button border, use only the image.hidden- The button is not shown to the user.noninteractive- The button is enabled but not interactive; no pressed button state is drawn. This value is intended for instances where the button is used in a notification.
win.setThumbnailClip(region) Windows
regionRectangle - Region of the window
Establece la región de la ventana para mostrar como la vista previa de la imagen es mostrada cuando se pasa sobre la ventana en la barra de tareas. You can reset the thumbnail to be
the entire window by specifying an empty region:
{ x: 0, y: 0, width: 0, height: 0 }.
win.setThumbnailToolTip(toolTip) Windows
toolTipstring
Configura la descripción emergente que se muestra cuando se pasa sobre la vista previa de la ventana en la barra de tareas.
win.setAppDetails(opcionales) Ventanas
Establece las propiedades para el botón de la barra de herramientas de la ventana.
relaunchCommand y relaunchDisplayName siempre deben establecerse a la vez. Si una de esas propiedades no está establecida, entonces ninguna será usada.
win.setAccentColor(accentColor) Ventanas
accentColorboolean | string | null - El color de la tilde para la ventana. By default, follows user preference in System Settings. Para restablecer el sistema a lo predeterminado, pasenull.
Establece el color de acento del sistema y resaltado del borde de la ventana activa.
El parámetro accentColor acepta los siguientes valores:
- Color string - Como
true, pero establece un color de acento personalizado usando formatos de color estándar CSS (Hex, RGB, RGBA, HSL, HSLA, o colores con nombre). Los valores alfa en formatos RGBA/HSLA son ignorados y el color es tratado como completamente opaco. true- Habilitar resaltado de color de acento para la ventana con el color de acento del sistema independientemente de si los colores de acento están habilitados para las ventanas enSettings.del sistemafalse- Deshabilita el resaltado de color de acento para la ventana, independientemente de si los colores de acento están habilitados para ventanas en Configuración del sistema.null- Restablece el comportamiento de color de acento de la ventana para seguir el comportamiento establecido en Configuración del sistema.
Ejemplos:
const win = new BrowserWindow({ frame: false })
// Establece el color de acento en rojo
win.setAccentColor('#ff0000')
// Formato RGB (alpha se ignora si está presente).
win.setAccentColor('rgba(255,0,0,0.5)')
// Habilita color de tilde, utilizando el color especificado en Ajustes del Sistema.
win.setAccentColor(true)
// Deshabilita color de tilde
win.setAccentColor(false)
// Restablece comportamiento del color de acento en la ventana para establecer el comportamiento seguido puesto en Ajustes del Sistema.
win.setAccentColor(null)
win.getAccentColor() Windows
Devuelve string | boolean - el color de acento del sistema y el resaltado del borde de la ventana activa en formato RGB Hex.
Si se ha establecido un color para la ventana que difiere del color del acento del sistema, el color del acento de la ventana será devuelto. De lo contrario, se devolverá un booleano, con true indicando que la ventana usa el color de acento global del sistema, y false indicando que el resaltado de color de acento está deshabilitado para esta ventana.
win.setIcon(icon) Windows Linux
iconNativeImage | string
Cambia el icono de la ventana.
win.setWindowButtonVisibility(visible) macOS
visibleboolean
Establece si los botones de luz del tráfico de ventana deben estar visibles.
win.setAutoHideMenuBar(hide) Windows Linux
hideboolean
Establece si el menu bar de la ventana debe ocultarse a si misma automáticamente o no. Una vez puesto la
barra de menú sólo se mostrará cuando los usuarios presionen la tecla Alt únicamente.
Si la barra de menú ya está visible, invoca setAutoHideMenuBar(true) no la ocultaría inmediatamente.
win.isMenuBarAutoHide() Windows Linux
Devuelve boolean - Si la barra de menú se oculta automáticamente.
win.setMenuBarVisibility(visible) Windows Linux
visibleboolean
Establece si la barra de menú debe estar visible. Si la barra de menú se esconde automáticamente, los usuarios todavía pueden mostrar la barra de menú presionando la tecla solo Alt.
win.isMenuBarVisible() Windows Linux
Devuelve boolean - Si la barra de menú es visible.
win.isSnapped() Windows
Devuelve boolean - si la ventana está organizada a través de Snap.
La ventana se desliza a través de botones mostrados cuando el ratón pasa sobre la ventana maximizar el botón, o arrastrándolo a los bordes de la pantalla.
win.setVisibleOnAllWorkspaces(visible[, options]) macOS Linux
visibleboolean
Establece si la ventana debe ser visible o no en todos los espacios de trabajo.
Este API no hace nada en Windows.
win.isVisibleOnAllWorkspaces() macOS Linux
Devuelve boolean - Si la ventana es visible en todos los espacios de trabajo.
Este API siempre devuelve falso en Windows.
win.setIgnoreMouseEvents(ignore[, options])
ignoreboolean
Hace que la ventana ignore todos los eventos del ratón.
Todos los eventos del ratón ocurridos en esta ventana se pasarán a la ventana debajo de esta ventana, pero si esta ventana esta enfocada, todavía recibirá los eventos del teclado.
win.setContentProtection(activable) macOS Windows
enableboolean
Evita que los contenidos de la ventana sean capturados por otras aplicaciones.
En macOS establece el sharingType de NSWindow' a NSWindowSharingNone.
En Windows se invoca SetWindowDisplayAffinity con WDA_EXCLUDEFROMCAPTURE.
Para Windows 10 versión 2004 y superior, la ventana se eliminará de la captura completamente,
versiones antiguas de Windows se comportan como si WDA_MONITOR fuera aplicado capturando una ventana negra.
win.isContentProtected() macOS Windows
Devuelve boolean - si la protección del contenido está habilitada o no.
win.setFocusable(focusable) macOS Windows
focusableboolean
Cambia si se puede enfocar o no la ventana.
En macOS no elimina el foco de la ventana.
win.isFocusable() macOS Windows
Devuelve boolean - Si la ventana puede ser enfocada.
win.setParentWindow(parent)
parentBaseWindow | null
Establece parent como la ventana padre de la ventana actual, al pasar null se convertirá la
ventana actual en una ventana de nivel superior.
win.getParentWindow()
Devuelve BaseWindow | null - La ventana padre o null si no hay padre.
win.getChildWindows()
Devuelve BaseWindow[] - Todas las ventanas hijas.
win.setAutoHideCursor(autoHide) macOS
autoHideboolean
Controla si se debe ocultar el cursor al escribir.
win.selectPreviousTab() macOS
Selecciona la pestaña previa cuando las pestañas nativas están activas y hay otras pestañas en la ventana.
win.selectNextTab() macOS
Selecciona la siguiente pestaña cuando las pestañas nativas están activas y hay otras pestañas en la ventana.
win.showAllTabs() macOS
Shows or hides the tab overview when native tabs are enabled.
win.mergeAllWindows() macOS
Unifica todas las ventanas en una sola con múltiples pestañas cuando las pestañas nativas están activas y hay más de una ventana abierta.
win.moveTabToNewWindow() macOS
Mueve la pestaña actual a una nueva ventana si las pestañas nativas están activas y hay más de una pestaña en la ventana actual.
win.toggleTabBar() macOS
Conmuta la visibilidad de la barra de pestañas si las pestañas nativas están activas y hay solo una pestaña en la ventana actual.
win.addTabbedWindow(baseWindow) macOS
baseWindowBaseWindow
Añade una ventana como pestaña de la ventana actual, después de la pestaña para la instancia de la ventana actual.
win.setVibrancy(type) macOS
typestring | null - Puede sertitlebar,selection,menu,pock,sidebar,header,sheet,window,hud,fullscreen-ui,tooltip,content,under-window, ounder-page. Consulte la documentación de macOS para más detalles.
Añade un efecto de vibración a la ventana. Enviar null o un string vacío eliminará el efecto de vibración en la ventana.
win.setBackgroundMaterial(material) Windows
materialstringauto- Deje que el Administrador de Ventanas de Escritorio (DWM) decida automáticamente el material de fondo dibujado por el sistema para esta ventana. Este es el valor predeterminado.ninguno- No dibuja ningún fondo del sistema.mica- Dibuja el efecto de material de fondo correspondiente a una ventana de larga duración.acrylic- Dibuja el efecto de material de fondo correspondiente a una ventana transitoria.tabbed- Dibuja el efecto de material de fondo correspondiente a una ventana con una barra de título tabulada.
This method sets the browser window's system-drawn background material, including behind the non-client area.
Consulte la documentación de Windows para más detalles.
Este método sólo es compatible con Windows 11 22H2 y posteriores.
win.setWindowButtonPosition(position) macOS
positionPoint | null
Establece una posición personalizada para los botones del semáforo en la ventana sin marco.
Pasar null restablecerá la posición a su valor predeterminado.
win.getWindowButtonPosition() macOS
Devuelve Point | null- La posición personalizada de los botones de semáforo en la
ventana sin borde, se devolverá null cuando no haya una posición personalizada.
win.setTouchBar(touchBar) macOS
touchBarTouchBar | null
Configura el plano de la touchBar para la ventana actual. Espeficando null or
undefined elimina el touch bar. This method only has an effect if the
machine has a touch bar.
Actualmente el API TouchBar es experimental y puede cambiar o ser eliminada en las versiones futuras de Electron.
win.setTitleBarOverlay(options) Windows Linux
En una Ventana con Controles de Ventana ya habilitados, este método actualiza el estilo de la barra de título superpuesta.
En Linux, el symbolColor se calcula automáticamente para tener un contraste mínimo accesible al color si no se establece explícitamente.