The WeChat applet authorizes the camera to be opened and the photo album to save pictures.

1. Authorize to open the camera
doTakePhoto() {
  let that = this
  wx.getSetting({
    success(res) {
    	// 第一次未授权
      if (res.authSetting['scope.camera'] === undefined) {
        wx.authorize({
          scope: 'scope.camera',
          success() {
            // 授权成功
            ...
          }
        })
      }
      // 第二次未授权
      else if (!res.authSetting['scope.camera'] && res.authSetting['scope.camera'] != undefined) {
        wx.showModal({
          title: '温馨提示',
          content: `请授权打开您的摄像头,拒绝授权将无法使用该功能`,
          cancelText: "不授权",
          confirmText: "继续授权",
          confirmColor: "#a08250",
          success(res) {
            if (res.confirm) {
              wx.openSetting({
                withSubscriptions: true,
                success() {
                  // 授权成功
                }
              })
            }
          }
        }, )
      }
      // 已授权
      else {
        ...
      }
    },
    fail(res) {
      console.log("wx.getSetting调用失败")
    }
  })
}
2. Authorize to save photo album
wx.saveImageToPhotosAlbum({
  filePath: this.data.shareImage,
  success(res) {
      wx.showToast({
        title: '保存图片成功',
        icon: 'success',
        duration: 2000
      })
  },
  fail(err) {
    console.log(err);
    if(err.errMsg === "saveImageToPhotosAlbum:fail:auth denied" || err.errMsg === "saveImageToPhotosAlbum:fail auth deny" || err.errMsg === "saveImageToPhotosAlbum:fail authorize no response") {
      wx.showModal({
        title: '提示',
        content: '需要您授权保存相册',
        showCancel: false,
        success: modalSuccess => {
          wx.openSetting({
            success(settingdata) {
              if(settingdata.authSetting['scope.writePhotosAlbum']) {
                console.log('获取权限成功,给出再次点击图片保存到相册的提示。')
              }
            }
          })
        }
      })
    }
  }
})

Guess you like

Origin blog.csdn.net/aaa123aaasqw/article/details/133943528