web-dev-qa-db-fra.com

Alternative pour l'attribut de téléchargement dans Safari / iOS

J'ai un blob créé avec un base64, et je dois rendre ces données téléchargeables au format pdf.

J'ai créé cet extrait:

    var blob = new Blob([byte]);
    var link = document.createElement('a');

    link.href = window.URL.createObjectURL(blob);
    link.target = '_blank';
    var fileName = name + '.pdf';
    link.download = fileName;
    link.click();

Il fonctionne sur tous les navigateurs, à l'exception de Safari Mobile sur iOS.

Le fichier est effectivement téléchargé, mais son nom est "inconnu", il ne peut donc pas être ouvert car l'extension est perdue.

Le problème est que attribut de téléchargement manque de support sur ce navigateur et IE.

Il existe de nombreuses solutions de contournement pour IE, mais je n'en ai pas trouvé pour safari/iOS.

Savez-vous comment puis-je télécharger un blob obtenu à partir d'une base64 (sans XHR impliqué) dans ce navigateur?

Je vous remercie

19
Cristian Traìna

L'attribut "cible" dans Safari semble remplacer l'attribut "téléchargement". Actuellement, à ma connaissance, il n'y a aucun moyen de résoudre ce problème. Je pense donc qu'il faut attendre la prochaine version de Safari (13) qui sortira dans quelques mois.

0
Dat Le