Creé un botón para descargar y guardar un archivo devuelto desde un punto final de API.
En el navegador común, después de hacer clic en el botón, aparece un cuadro de diálogo para guardar el archivo con el título Save As y Save as type mostrado por la extensión del archivo. Pero en electron , el título parece ser una URL de archivo (en mi caso, muestra blob://https:... porque el mío se crea con URL.createObjectURl ).
Entonces, ¿hay alguna opción que deba configurar en a etiqueta para que el título del cuadro de diálogo sea Save As y corregir el tipo de archivo guardado (sin usar el cuadro de diálogo nativo de electron)?
... <a hidden href='/' ref={downloadRef}>download</a> <button onClick={handleSaveFile}>download</button> ... const handleSaveFiles = (file: Blob, fileName: string): void => { const fileDownloadUrl = window.URL.createObjectURL(file); if (downloadRef.current) { downloadRef.current.href = fileDownloadUrl; downloadRef.current.download = fileName; downloadRef.current.click(); } };En realidad, el cuadro de diálogo que se abrió al hacer clic en ese botón ya es el cuadro de diálogo de electron, luego pude editar el título y los filtros por evento will-download .
... this.browserWindow = new BrowserWindow(option); ... this.browserWindow.webContents.session.on('will-download', (event, item) => { let filters = []; switch (item.getMimeType()) { case 'text/csv': filters = [{ name: 'Microsoft Excel Comma Separated Values File', extensions: ['csv'] }]; break; case 'application/octet-stream': filters = [{ name: 'Zip archive', extensions: ['zip'] }]; break; default: break; } item.setSaveDialogOptions({ title: 'Save As', filters: [...filters, { name: 'All Files', extensions: ['*'] }], }); });Consulte https://www.electronjs.org/docs/latest/api/download-item#downloaditemsetsavedialogoptionsoptions