該功能分為兩步:
第一步判斷使用設備是否支持人臉識別功能:
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的都是需要設備與他們合作才能實現的