uni-app 小程序真机 atob 报错。APP正常,模拟器也正常,但小米真机使用时报错。

uni-app 小程序真机 atob 报错。APP正常,模拟器也正常,但小米真机使用时报错。

2 回复

更多关于uni-app 小程序真机 atob 报错。APP正常,模拟器也正常,但小米真机使用时报错。的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在uni-app开发中,小程序真机环境(如小米手机)下使用atob报错,而APP和模拟器正常,通常是因为小程序环境缺少浏览器原生的atob函数。小程序运行在JavaScriptCore环境中,不支持部分浏览器API。

解决方案:

  1. 使用uni-app内置方法:优先用uni.base64ToArrayBufferuni.arrayBufferToBase64替代,这些是跨端兼容的。
  2. 自定义Base64解码函数:若需直接处理字符串,可手动实现Base64解码逻辑,例如:
    function base64Decode(str) {
      return decodeURIComponent(escape(atob(str)));
    }
    
    但注意atob本身可能仍不兼容,建议用以下Polyfill:
    const atobPolyfill = (data) => Buffer.from(data, 'base64').toString('binary');
回到顶部