Blob オブジェクトを作成し、Uint8Array をそのコンストラクターに渡そうとします Windows の chrome と firefox で正常に動作します ios の chrome と safari では、Blod には Uint8Array のデータは含まれていませんが、テキスト: [object Uint8Array]
キャンバスをサーバーにアップロードするには、これが必要です。
回避策はありますか?
Blob オブジェクトを作成し、Uint8Array をそのコンストラクターに渡そうとします Windows の chrome と firefox で正常に動作します ios の chrome と safari では、Blod には Uint8Array のデータは含まれていませんが、テキスト: [object Uint8Array]
キャンバスをサーバーにアップロードするには、これが必要です。
回避策はありますか?
私はまったく同じ問題に苦しんでいます。ArrayBuffer を使用して Uint8Array をバックアップすると、Safari と Chrome の両方で機能します (他のブラウザーではまだテストされていません) が、Chrome は警告メッセージを出力します。Chrome は、ArrayBuffer を Blob() コンストラクターに渡す前に DataView でラップする必要があると言います。
// 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 廃止メッセージは次のとおりです。
ArrayBuffer 値は、Blob コンストラクターで非推奨になりました。代わりに ArrayBufferView を使用してください。