小程序保存图片拒绝授权解决方法
发布于 5 年前 作者 na20 600 次浏览 来自 分享
//把当前画布指定区域的内容导出生成指定大小的图片
canvasToTempFilePath({
  canvasId: 'shareCanvas'
}).then((res) => {
 //获取用户的当前设置。返回值中只会出现小程序已经向用户请求过的权限。
 getSetting().then((getSettingRes) => {
    //判断是否有过“scope.writePhotosAlbum”这个授权
   if(!getSettingRes.authSetting["scope.writePhotosAlbum"]){
        //没有授权过则提前向用户发起授权请求
     authorize({
       scope: "scope.writePhotosAlbum",
     }).then((res) => {
       console.log("authorize",res)
     },(err) => {
          //授权失败则提示 因为官方调整有按钮才能调起openSetting这个方法
      wx.showModal({
       title: '提示',
       content: '若点击不授权,将无法使用保存图片功能',
       cancelText:'不授权',
       cancelColor:'#999',
       confirmText:'授权',
       confirmColor:'#f94218',
       success(res) {
        if (res.confirm) {
                 //调起客户端小程序设置界面,返回用户设置的操作结果。
                 //设置界面只会出现小程序已经向用户请求过的权限。
          openSetting()                               
        } else if (res.cancel) {
           console.log('用户点击取消')
        }
       }
        })
      })
   }else{
        //授权过则调用保存图片到相册的方法
     saveImageToPhotosAlbum({
       filePath: res.tempFilePath
     }).then((res) => {
       console.log("saveImageToPhotosAlbum",res)
       wx.showToast({
         title: "图片保存成功",
         icon: 'none',
         duration: 2000
       })
       this.setData({
         sharehidden: true,
       })
     })
   }
  })
})

提示:以上方法皆是微信原生api的异步封装

回到顶部