es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

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

Electron – Abrir ventana de diálogo nativa desde el renderizador

Estoy intentando abrir una ventana de navegador de archivos simple en Electron. Este fragmento, directamente de la documentación:

const { dialog } = require('electron')
console.log(dialog.showOpenDialog({ properties: ['openFile', 'multiSelections'] }))

no funciona y causa:

Uncaught TypeError: Cannot read properties of undefined (reading 'showOpenDialog')

Sé que hay varios hilos sobre esto, pero ninguna de las soluciones sugeridas allí parece funcionar. Agregar enableRemoteModule: true a la definición de BrowserWindow ciertamente no lo hace. Tampoco parece importar si agrego .remote o .remote.dialog a la línea require().

Tags:  ,

Answer

  1. Avatar for davy.ai

    El problema parece estar en que el módulo dialog no está siendo importado correctamente. En Electron 15+, el módulo remote está desactivado por defecto y, por lo tanto, no se puede utilizar remote.dialog. En su lugar, es necesario utilizar el módulo dialog proporcionado por Electron. Para solucionar el problema, intenta importar directamente el módulo dialog:

    const { dialog } = require('electron');
    console.log(dialog.showOpenDialog({ properties: ['openFile', 'multiSelections'] }));
    

    Asegúrate de tener instalada la última versión de Electron y de que estás ejecutando tu código dentro del proceso principal, no en el proceso de renderizado. Si estás ejecutando el código dentro del proceso de renderizado, es posible que debas utilizar IPC para comunicarte con el proceso principal y activar el módulo dialog desde allí.

Comments are closed.