首先我在开发工具中清除了缓存信息后,长按图片,会弹出申请获得以下权限的提示框,我点击允许后,图片仍然保存失败,不知道为什么。
save: function() { console.log('hello') let that = this wx.getSetting({ success(res) { console.log("getsetting") console.log(that.data.filePath) // 如果没有则获取授权 if (!res.authSetting['scope.writePhotosAlbum']) { wx.authorize({ scope: 'scope.writePhotosAlbum', success(res) { console.log(that.data.filePath) console.log(res) wx.saveImageToPhotosAlbum({ filePath: that.data.filePath, success() { wx.showToast({ title: '保存成功' }) }, fail(res) { console.log(that.data.filePath) console.log(res) wx.showToast({ title: '保存失败', icon: 'none' }) } }) }, fail() { // 如果用户拒绝过或没有授权,则再次打开授权窗口 //(ps:微信api又改了现在只能通过button才能打开授权设置,以前通过openSet就可打开,下面有打开授权的button弹窗代码) that.setData({ openSet: true }) } }) } else { console.log("no") console.log(that.data.filePath) // 有则直接保存 wx.saveImageToPhotosAlbum({ filePath: that.data.filePath, success() { console.log(that.data.filePath) wx.showToast({ title: '保存成功' }) }, fail(res) { console.log(that.data.filePath) console.log(res) wx.showToast({ title: '保存失败', icon: 'none' }) } }) } }, fail(res) { console.log(res) } })}, |
错误提示是:saveImageToPhotosAlbum:fail file not found
但实际上可以获取到文件的路径,成功保存的话有些时候可以有时候不行

-> 接口获取网络图片地址
-> wx.downloadFile 获取临时文件地址
-> wx.getSetting 检查是否有保存图片的权限
-> 有权限,保存 wx.saveImageToPhotosAlbum
-> 无权限 wx.authorize 获取保存图片权限
-> 保存 wx.saveImageToPhotosAlbum
你的代码里少了 wx.downloadFile
麻烦提供出现问题的具体机型、微信版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)