Saltar al contenido

javascript open new window content base64 excel iOS

Al implementar una solución y debemos diferencias si estamos ejecutando sobre un iOS y encima la respuesta sea distinta, aquí el requerimiento.

  1. 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
  2. Sino
    1. 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');
}

Si te ha interesado este artículo y deseas un apoyo o asesoría en algún requerimiento, envíame un mensaje a: (info@juliopari.com) o sino a través de Linkedin: https://www.linkedin.com/in/juliopari/