微信小程序开发交流qq群 173683895
承接微信小程序开发。扫码加微信。
在这之前试过把base64的图片转移保存到画布然后保存到手机,但是真机调试的时候不支持这种方式,希望各位不要再去汤坑
下面是可行的方法:
scene 是base64文件,打印结果如下:
不说废话,直接上代码:(结尾有代码说明)
var aa = wx.getFileSystemManager();
console.log('that.data.scene:', that.data.scene)
aa.writeFile({
filePath:wx.env.USER_DATA_PATH+'/test.png',
data: that.data.scene.slice(22),
encoding:'base64',
success: res => {
wx.saveImageToPhotosAlbum({
filePath: wx.env.USER_DATA_PATH + '/test.png',
success: function (res) {
wx.showToast({
title: '保存成功',
})
},
fail: function (err) {
console.log(err)
}
})
console.log(res)
}, fail: err => {
console.log(err)
}
})
代码解析:
wx.getFileSystemManager() 是获取文件管理器对象;
aa.writeFile 是写文件,详细参数可 点击查看 官方文档说明。
wx.env.USER_DATA_PATH+'/test.png' 这里是创建一个临时文件的文件名。
that.data.scene.slice(22) 这里是把 data:image/png;base64, 这一段去除,需要注意的是去除这一段之后 base64 编码之间放到image组件的src里面是不能显示图片的。
wx.saveImageToPhotosAlbum 是保存图片到相册
本文的base64文件的来源是小程序二维码,微信小程序生成小程序二维码流程博客地址点击跳转
writeFile 文档简要说明: