微信小程序用户拒绝授权后保存图片

wx.getImageInfo获取图片信息

wx.getImageInfo({
	src: src,//图片链接
	success(res) {
		//res.width //图片宽度
		//res.height//图片高度
		//res.path //图片本地路径
	}
})

wx.saveImageToPhotosAlbum将图片保存到本地相册

wx.saveImageToPhotosAlbum({
  	filePath: res.path,
  	success: function (data) {
  		wx.showToast({
           title: '保存成功',
        })
     	console.log(data);//保存成功
  	},
  	fail: function (err) {
  		console.log(err);//拒绝授权
	}
})

如果用户拒绝授权,需要用户重新调起授权框

 wx.showModal({
 	title: '提示',
	content: '需要您授权保存相册',
	showCancel: false,
	success: modalSuccess => {
		wx.openSetting({
   			success(settingdata) {
				console.log("settingdata", settingdata)
				if (settingdata.authSetting['scope.writePhotosAlbum']) {
					wx.showModal({
                          title: '提示',
                          content: '获取权限成功,再次点击图片即可保存',
                          showCancel: false,
                        })
                      } else {
                        wx.showModal({
                          title: '提示',
                          content: '获取权限失败,将无法保存到相册哦~',
                          showCancel: false,
                        })
                      }
                    },
                    fail(failData) {
                      console.log("failData", failData)
                    },
                    complete(finishData) {
                      console.log("finishData", finishData)
                    }
				})
			}
		})

完整代码

let that = this
    //若二维码未加载完毕,加个动画提高用户体验
    wx.getImageInfo({
      src: pic.src,//图片链接
      success(path) {
        wx.saveImageToPhotosAlbum({
          filePath: path.path,
          success: function(res) {
            wx.hideLoading()
            wx.showToast({
              title: '保存成功',
            })
          },
          fail: function(err) {
            console.log(err)
            wx.hideLoading()
            if (err.errMsg === "saveImageToPhotosAlbum:fail:auth denied" || err.errMsg === "saveImageToPhotosAlbum:fail auth deny") {
              // 这边微信做过调整,必须要在按钮中触发,因此需要在弹框回调中进行调用

              wx.showModal({
                title: '提示',
                content: '需要您授权保存相册',
                showCancel: false,
                success: modalSuccess => {
                  wx.openSetting({
                    success(settingdata) {
                      console.log("settingdata", settingdata)
                      if (settingdata.authSetting['scope.writePhotosAlbum']) {
                        wx.showModal({
                          title: '提示',
                          content: '获取权限成功,再次点击图片即可保存',
                          showCancel: false,
                        })
                      } else {
                        wx.showModal({
                          title: '提示',
                          content: '获取权限失败,将无法保存到相册哦~',
                          showCancel: false,
                        })
                      }
                    },
                    fail(failData) {
                      console.log("failData", failData)
                    },
                    complete(finishData) {
                      console.log("finishData", finishData)
                    }
                  })
                }
              })
            }
          }
        })
      }
    })
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值