如何将字符串转换为base64 in react native?

时间:2018-05-06 15:12:07

标签: react-native

我正在寻找一种方法将字符串转换为反应原生的Base64,例如btoa()。

btoa()仅在开发人员工具处于打开状态时才有效。

谢谢, Eranbo

4 个答案:

答案 0 :(得分:2)

  

btoa()仅在开发人员工具打开时才有效

这是因为在调试模式下没有代码工作在不同的js引擎(V8和coreJS)。我猜(如果它真的不起作用),coreJS没有btoa实现。

使用第三方库。例如npm:js-base64

答案 1 :(得分:0)

正如我在上面的评论中提到的,我最终编写了自己的base64编码器解码器。
我已将其上传到npm,欢迎大家使用它。
https://www.npmjs.com/package/react-native-base64
享受,
eranbo

答案 2 :(得分:0)

rn-fetch-blob允许您使用本机代码进行转换:

export const blobToBase64 = async (data, encoding = 'base64') => fs.readFile(data, encoding);

答案 3 :(得分:-1)

您可以在香草js中执行以下操作:

export const UriToBase64 = blob => {
  return new Promise((resolve, reject) => {
    if (window.FileReader) {
      const reader = new window.FileReader();
      if (blob && blob.type.match('image.*')) {
        reader.readAsDataURL(blob);
        reader.onerror = reject;
      } else {
        reject(new Error('Bad type, must be image'));
      }
      reader.onloadend = () => resolve(reader.result);
    } else {
      reject(new Error('No FileReader on window'));
    }
  });
};

export default {
  UriToBase64,
};