收藏
回答

点击允许按钮后图片仍然保存失败

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug saveImageToPhotosAlbum 客户端 6.5.3 2.0.0

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

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

但实际上可以获取到文件的路径,成功保存的话有些时候可以有时候不行

回答关注问题邀请回答
收藏

2 个回答

  • 2019-05-09

    -> 接口获取网络图片地址

    -> wx.downloadFile 获取临时文件地址

    -> wx.getSetting 检查是否有保存图片的权限

        -> 有权限,保存 wx.saveImageToPhotosAlbum

        -> 无权限 wx.authorize 获取保存图片权限

            -> 保存 wx.saveImageToPhotosAlbum

    你的代码里少了 wx.downloadFile


    2019-05-09
    有用
    回复 1
    • 三角龙Mitsunoryw
      三角龙Mitsunoryw
      2021-01-23
      题主有log filePath吧,如果是网络路径应该会得到相应报错
      2021-01-23
      回复
  • 灵芝
    灵芝
    2019-03-19

    麻烦提供出现问题的具体机型、微信版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2019-03-19
    有用
    回复
登录 后发表内容