uni-app将图片存入系统的官方api是 uni.saveImageToPhotosAlbum(OBJECT),需要给定一个文件路径filePath,但是这个路径我们是没办法拿到的。解决思路:需要用到Bitmap,把base64转成bitmap文件对象,然后使用uni.saveImageToPhotoAlbum方法将图片成功保存并显示。
saveBaseImgFile() {
let base64 = this.qrImgUrl;
const bitmap = new plus.nativeObj.Bitmap("base64");
bitmap.loadBase64Data(base64, function() {
const url = "_doc/" + new Date().getTime() + ".png";
console.log('saveHeadImgFile', url)
bitmap.save(url, {
overwrite: true, // 是否覆盖
// quality: 'quality' // 图片清晰度
}, (i) => {
uni.saveImageToPhotosAlbum({
filePath: url,
success: function() {
uni.showToast({
title: '图片保存成功',
icon: 'none'
})
bitmap.clear()
}
});
}, (e) => {
uni.showToast({
title: '图片保存失败',
icon: 'none'
})
bitmap.clear()
});
}, (e) => {
uni.showToast({
title: '图片保存失败',
icon: 'none'
})
bitmap.clear()
});
}
网友评论