微信小程序实现将图片保存到手机相册
短信预约 -IT技能 免费直播动态提醒
实现思路:
首先我们需要调用 wx.downloadFile 方法下载文件资源到本地,然后利用 wx.saveImageToPhotosAlbum 方法保存图片到系统相册,需要注意的是这样写很可能会因为没有权限而导致下载不了图片,所以我们最后还需要给接口一个调用失败的回调函数,以此来获取权限,最后这个小功能就实现啦。
源码如下:
const app = getApp(); //获取app实例Page({ data: { modalType: false, //弹框默认不显示 imgUrl: "https://s1.ax1x.com/2022/04/11/LV4c4J.jpg", //模拟图片 }, // 点击下载图片事件 downloadImg() { wx.showLoading({ title: '加载中...' }); //wx.downloadFile方法:下载文件资源到本地 wx.downloadFile({ url: this.data.imgUrl, //图片地址 success: function (res) { //wx.saveImageToPhotosAlbum方法:保存图片到系统相册 wx.saveImageToPhotosAlbum({ filePath: res.tempFilePath, //图片文件路径 success: function (data) { wx.hideLoading(); //隐藏 loading 提示框 wx.showModal({title: '提示',content: '保存成功',modalType: false, }) }, // 接口调用失败的回调函数 fail: function (err) { if (err.errMsg === "saveImageToPhotosAlbum:fail:auth denied" || err.errMsg === "saveImageToPhotosAlbum:fail auth deny" || err.errMsg === "saveImageToPhotosAlbum:fail authorize no response") {wx.showModal({ title: '提示', content: '需要您授权保存相册', modalType: false, success: modalSuccess => { wx.openSetting({ success(settingdata) { console.log("settingdata", settingdata) if (settingdata.authSetting['scope.writePhotosAlbum']) { wx.showModal({ title: '提示', content: '获取权限成功,再次点击图片即可保存', modalType: false, }) } else { wx.showModal({ title: '提示', content: '获取权限失败,将无法保存到相册哦~', modalType: false, }) } }, fail(failData) { console.log("failData", failData) }, complete(finishData) { console.log("finishData", finishData) } }) }}) } }, complete(res) { wx.hideLoading(); //隐藏 loading 提示框 } }) } }) }})
来源地址:https://blog.csdn.net/aaa123aaasqw/article/details/129622646
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341