小程序打开摄像头会弹出询问框,如果不小心拒绝后将会无法调用摄像头:
image.png
解决方法:监听camera的binderror方法,弹出确认提示,再次确认打开的话让用户手动打开
<camera mode="normal" device-position="front" flash="auto" binderror="error" class="camrea"></camera>
//method中监听的方法
error(e) {
var that = this;
that.setData({
hasCamrea:false
})
//弹出提示
wx.showModal({
title: '提醒',
content: '您已拒绝授权相机,将导致无法自拍,请点击确定去授权!',
success(res){
//如果点击确定
if(res.confirm) {
wx.openSetting({
success(res){
//如果同意了位置授权则userLocation=true
if (res.authSetting["scope.camrea"]){
}
}
})
}
}
})
}
打开摄像头后,可能会出现摄像头无法出来,我是在onshow方法里写了重新刷一下当前页面,实际使用效果能接受就采用了(因为摄像头询问肯定时用户刚进来的时候,不会丢失用户写的数据):
//重新打开当前页面
if(!that.data.hasCamrea){
wx.redirectTo({
url: '/pages/basicInfo/basicInfo',
})
}
image.png
image.png











网友评论