blob在ios上不接受Uint8Array

blob does not accept Uint8Array on ios

本文关键字:不接受 Uint8Array ios blob      更新时间:2023-09-26

我尝试创建一个Blob对象并将Uint8Array传递给它的构造函数它在windows上的chrome和firefox上运行良好在chrome和safari上的ios然而,血液不包含Uint8Array的数据,但文本:[object Uint8Array]

我需要这个来上传一个画布到服务器。

有解决方法吗?

我也遇到了同样的问题。当我用ArrayBuffer备份Uint8Array时,它在Safari和Chrome中都有效(尚未在其他浏览器中测试),但Chrome打印警告消息。Chrome说,我必须包装ArrayBuffer在一个DataView传递给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});

编辑

确切的Chrome弃用消息是:

在Blob构造函数中不支持

ArrayBuffer值。使用ArrayBufferView。