一次在开发小程序过程中后台返回的小程序码用image标签直接显示,最后测试发现在iOS上长按图片不能发送给朋友、转发和保存。
经过分析发现那是因为后台返回的图片是base64编码的图片,虽然在base64字符串前面加上"data:image/png;base64,"可以显示出来图片,但是iOS识别出来无法发送等。
解决办法就是先把base64图片转成临时文件,再显示出来:
var dataUrl = "data:image/png;base64," + res.data;// 拼接base64图片路径
var fs = wx.getFileSystemManager();
var codeimg = wx.env.USER_DATA_PATH + '/temp.png';// 构建临时图片路径
fs.writeFile({
filePath: codeimg,
data: dataUrl.slice(22),
encoding: 'base64',
success: () => {
_that.setData({
src: codeimg// 显示图片
})
}
});
有用请支持。