h5开发,有上传图片需求。
但在真机调试时,ios系统的可以上传成功并显示,安卓系统上传图片成功但不显示图片。
排查好久,发现原来是因为系统不一样,wx.getLocalImgData
返回base64码不一样。
后端是直接根据wx.getLocalImgData
返回的base64码前几位判断解码,所以安卓系统会回显不出来图片。
解决:截取base64码前四位,判断是否等于data
,如果不是则加上对应的前缀即可。
正确返回时base64码
wx.getLocalImgData({
localId: localIds[0], // 图片的localID
success: function (res) {
// 安卓机解码无'data:image/png;base64,'
let localData = res.localData.substr(0, 4) === 'data' ? res.localData : 'data:image/png;base64,' + res.localData
.......
}
)}