Blob n'accepte pas Uint8Array sur ios

J'essaie de créer un objet Blob et de passer un Uint8Array à son constructeur. Il fonctionne bien sur Chrome et Firefox sur Windows. En Chrome et safari sur ios, cependant, le Blod ne contient pas les données du Uint8Array mais le texte: [objet Uint8Array]

J'ai besoin de télécharger une toile sur le serveur.

Y at-il un travail autour?

Je me heurte exactement au même problème. Lorsque je sauvegarde le Uint8Array avec un ArrayBuffer, il fonctionne à la fois dans Safari et Chrome (non testé dans d'autres navigateurs) mais Chrome imprime un message d'avertissement. Chrome dit que je dois envelopper ArrayBuffer dans un DataView avant de le transmettre au constructeur Blob ().

// write the bytes of the string to an ArrayBuffer var ab = new ArrayBuffer(byteString.length); var ia = new Uint8Array(ab); for (var i = 0; i < byteString.length; i++) { ia[i] = byteString.charCodeAt(i); } new Blob([ab], {type: mimeString}); 

modifier

Le message exact de déception de Chrome est:

Les valeurs ArrayBuffer sont obsolètes dans Blob Constructor. Utilisez plutôt ArrayBufferView.