<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的成功、失败和完成回调函数仍未执行
解决
微信开发者工具未获取电脑相机权限,系统设置中授予权限即可