背景:微信小程序用户分享时后端生成分享图片传给前端图片地址
主要用到的方法:
wx.downloadFile方法下载图片到本地并获取本地文件路径。
wx.openSetting 方法引导用户打开授权设置页面
wx.saveImageToPhotosAlbum 方法将临时文件保存到用户手机的相册中。
保存图片完整代码示例
wx.downloadFile({ url: '文件路径', success (res) { if (res.statusCode === 200) { wx.saveImageToPhotosAlbum({ filePath: res.tempFilePath, success(res) { wx.showToast({ title: '保存成功' }); }, fail (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: '需要您授权保存相册', showCancel: false, success: res=> { wx.openSetting({ success(res) { if (settingdata.authSetting['scope.writePhotosAlbum']) { wx.showModal({ title: '提示', content: '获取权限成功,再次点击分享即可保存', showCancel: false, }) } else { wx.showModal({ title: '提示', content: '获取权限失败,将无法保存到相册哦~', showCancel: false, }) } }, fail(err) { console.log("fail", err) }, complete(res) { console.log("finish", res) } }) } }) } else if (err.errMsg === "saveImageToPhotosAlbum:fail cancel") { wx.showModal({ title: '提示', content: '取消了保存分享图片,再次点击分享即可保存', showCancel: false, }) } else { } } }) } else { util.hideToast() wx.showModal({ title: '提示', content: "图片下载失败", showCancel: false, }) } }, fail () { util.hideToast() wx.showModal({ title: '提示', content: "图片下载失败", showCancel: false, }) } })