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