我将在 React Native 中将 b64 转换为 blob。
但是我在 atob 函数上遇到错误。
这是我的代码。
var binary = atob(this.state.avatarSource.uri.split(',')[1]);
var byteNumbers = new Array(binary.length);
for(var i = 0; i < binary.length; i++) {
byteNumbers.push(binary.charCodeAt(i));
}
var file = new Blob([new Uint8Array(byteNumbers)], {type: 'image/jpeg'});
有人知道吗?
最佳答案
不要使用atob
或btoa
,它们只能在 Debug模式
下工作。
因为当您使用 Debug模式时,您是在浏览器(应该是 V8)中运行 JS 代码,而如果您要在生产模式下运行应用程序,它会使用 JavascriptCore
没有 atob
或 btoa
实现。
您可以使用 base-64将数据转换为 BASE64 编码的字符串,但我不确定它是否可以为您创建正确的 Blob 对象。
根据我的理解,Blob 是 JS 上下文和文件系统之间的桥梁,React Native 本身还没有文件系统 API,因此你可能会得到一个 Blob 对象,但它总是空的。
如果您要从包含数字的数组创建图像,请查看react-native-fetch-blob这是我正在做的一个项目,希望它能解决这类问题:)
关于javascript - 如何在 React Native 中将 base64 转换为 Blob?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36698716/