Al implementar una solución y debemos diferencias si estamos ejecutando sobre un iOS y encima la respuesta sea distinta, aquí el requerimiento.
- Si es iOS
- Si es Navegador Web PC (Todos los navegadores)
- Descargar un archivo file .xls
- Si es Navegador iPad (Safari)
- Descargar la data en base64 en una nueva pestaña del navegador
- Si es Navegador Web PC (Todos los navegadores)
- Sino
- Descargar un archivo file .xls
El código iría algo así:
var ios = false; var userAgent = navigator.userAgent || navigator.vendor || window.opera; if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) { ios = true; }else{ ios = false; } if(ios){ var urlbase64 = "data:application/vnd.ms-excel;base64,"+database64; window.open(urlbase64, '_blank'); }else{ var archivoblob = b64toBlob(archivoBase64,'application/excel'); FileSaver.saveAs(archivoblob, 'archivo.xls'); }