javascript - 如何在 React Native 中将 base64 转换为 Blob?

标签 javascript react-native

我将在 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'});

有人知道吗?

最佳答案

不要使用atobbtoa,它们只能在 Debug模式下工作。

因为当您使用 Debug模式时,您是在浏览器(应该是 V8)中运行 JS 代码,而如果您要在生产模式下运行应用程序,它会使用 JavascriptCore 没有 atobbtoa 实现。

您可以使用 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/

相关文章:

javascript - 循环遍历 <select>/<option> 列表并使用 PHP 和 JavaScript 收集值?

javascript - Vue双向数据绑定(bind)到深层嵌套数据对象

react-native - 使用react-navigation-redux后,收到警告

android - 无法从 React Native 移动应用程序向本地主机后端发送 HTTP 请求

表中的 Javascript 链接在链接点击时保持选中状态

javascript - Dart 变量存储对值的引用

javascript - Angular - FormArray,如何重置 formArray 的特定字段?

react-native - WIX Navigation V2 - 推送到新屏幕时隐藏底部标签栏

javascript - 我想使用 expo AsyncStorage 将存储保留为 redux,但出现错误

react-native - 如何以 24 小时格式制作 React-native DatePickerIOS?