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');
}