「小程序开发」-已获取授权情况下页面显示“获取相机失败”

340 阅读1分钟
<view class="container">
  <view class="status">
    <text>相机授权状态:{{cameraAuthorized ? '已授权' : '未授权'}}</text>
  </view>
  <camera class='camera' />
  <button bindtap="takePhoto">拍照</button>
</view>
Page({
  data: {
    cameraAuthorized: false
  },
  onReady: function () {
    this.getCameraAuthorization();
  },
  getCameraAuthorization() {
    wx.getSetting({
      success: (res) => {
        const cameraAuthorized = res.authSetting['scope.camera']
        this.setData({
          cameraAuthorized
        })
      },
      fail: (err) => {
        console.error('获取设置失败:', err);
      }
    });
  },
  initCamera() {
    this.cameraCtx = this.cameraCtx ?? wx.createCameraContext();
    this.cameraCtx.takePhoto({
      quality: 'high',
      success: (res) => {
        console.error('success', res)
      },
      fail: (err) => {
        console.error('fail', err)
      },
      complete: function (res) {
        console.error('com', res)
      },
    });
  },
  getAuthorize() {
    wx.openSetting({
      success(res) {
        wx.authorize({
          scope: 'scope.camera',
          success(){
            this.initCamera()
          },fail(){
             console.log('获取授权失败')
          }
        })
      },
      fail(err) {
        console.error(err)
      }
    });
  },
  takePhoto() {
    if (this.data.cameraAuthorized) {
      this.initCamera()
    } else {
      this.getAuthorize()
    }
  }
})

# [CameraContext](https://developers.weixin.qq.com/miniprogram/dev/api/media/camera/CameraContext.html)正常,但takePhoto的成功、失败和完成回调函数仍未执行

解决

微信开发者工具未获取电脑相机权限,系统设置中授予权限即可