该功能分为两步:
第一步判断使用设备是否支持人脸识别功能:
checkIsSupportFacialRecognition()
支持的话走success,否则fail
第二步,成功之后开始人脸识别,人脸识别成功时code值等于0,在此时进行一些处理就好了
startFacialRecognitionVerify()
// 先判断使用设备是否支持人脸识别 wx.checkIsSupportFacialRecognition({ success(res) { console.log('判断是否支持人脸识别功能:', res) wx.startFacialRecognitionVerify({ name: that.data.name, // 身份证名称 idCardNumber: that.data.idCode, // 身份证号码 checkAliveType: 2, // 1:读数字(默认值);2:屏幕闪烁 success: function(resFacial) { if (resFacial.errCode == 0) { // 人脸识别成功之后调用个人信息保存接口 that.saveInfo() } else { Toast(resFacial.errMsg) } }, fail: err => { console.log(err) if (err.errCode == 90100) Toast('用户已取消!') else Toast('人脸识别失败!') } }) }, fail(res) { console.log('判断是否支持人脸识别功能错误回调:', res) Toast('该设备不支持人脸识别功能!') } })
但是人脸识别进去后手动返回后自动走fail回调,errCode的值是90100这个文档里面没有,只是我亲自测出来的,这个需要注意下,如果不成功也可以提示别的信息!
此处检验设备方法未开放但是已加入白名单,所以开发文档里面没有,在开放社区找到的附链接:https://developers.weixin.qq.com/community/business/doc/000442d352c1202bd498ecb105c00d
写人脸识别的时候还有个大坑,一开始只是在开发文档里面找,有个
wx.startSoterAuthentication(Object object)
但是他需要用户使用的机型加入微信的平台也就是要跟他们合作之后才能开通人脸识别功能,要不然都只是返回指纹识别功能。
注意:方法中带有SOTER的都是需要设备与他们合作才能实现的