小程序相机组件刚进入页面的时候会获取相机权限,如果拒绝了之后再次授权,返回当前页面发现无法重新调用摄像头,原因是页面渲染camera问题,当用户进入页面拒绝或者允许授权时这个标签都已经被渲染,所以当用户重新允许这个标签也是不会重新加载渲染。
解决方法,使用v-if来让camera组件动态渲染。
onShow() {
let that = this
wx.getSetting({
success(res) {
if (!res.authSetting['scope.camera']){
that.isShow = false
}else{
that.isShow = true
}
}
})
},
------
error(e) {
console.log(e.detail);
wx.showModal({
title: '提示',
showCancel: false,
confirmText: '授权',
content: '请确认授权,否则无法进行人脸识别功能',
success: function(tip) {
if (tip.confirm) {
wx.openSetting();
}
}
});
}
再次授权,进入授权设置页后返回相机页面,会再次进去onshow函数里面,这样能再次调起摄像头,但是会有一秒左右的白底然后才会切换成摄像头,这个没能秒开摄像头,用户体验不是很好,有更好的方法请告知