首先我在开发工具中清除了缓存信息后,长按图片,会弹出申请获得以下权限的提示框,我点击允许后,图片仍然保存失败,不知道为什么。
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)