小程序下载图片到本地相册
2021-11-29 本文已影响0人
zhudying
// 是否授权保存图片
saveImage(){
// 查看是否有 `scope.writePhotosAlbum` 权限
wx.getSetting({
success: res => {
if (!res.authSetting['scope.writePhotosAlbum']) {
// 申请所需权限
wx.authorize({
scope: 'scope.writePhotosAlbum',
success: () => {
// 授权成功保存图片
this.saveToAlbum();
// this.saveLocalImage(this.canvasImages)
},
fail: (err) => {
// 授权失败
console.log(err,'授权失败')
}
});
} else {
// 用户到设置中同意保存相册权限后再次保存到相册
// this.saveToAlbum();
this.saveLocalImage(this.canvasImages)
}
}
});
},
// 保存到相册
saveToAlbum() {
// 把base64的图片转化成ArrayBuffer数据
const buffer = wx.base64ToArrayBuffer(this.shareQr.replace(/^data:\w+\/\w+;base64,/, ''));
// 指定图片的临时路径
const path = `${wx.env.USER_DATA_PATH}/宝贝二维码.png`;
// 获取小程序的文件系统
const fsm = wx.getFileSystemManager();
// 把arraybuffer数据写入到临时目录中
fsm.writeFile({
filePath: path,
data: this.canvasImages,
encoding: 'binary',
success: () => {
this.saveLocalImage(path)
},
fail: (err) => {
// 写入失败
console.log(err,'写入失败')
}
});
},
// 保存图片到本地相册
saveLocalImage(img){
wx.saveImageToPhotosAlbum({
filePath: img, // 图片文件路径,可以是临时文件路径也可以是永久文件路径,不支持网络图片路径
success: () => {
this.$refs.qrPopup.close()
uni.showToast({
title: '保存成功',
icon: 'none'
})
},
fail: () => {
uni.showToast({
title: '保存失败',
icon: 'none'
})
}
})
},