问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 微信小程序 需求 wx.startSoterAuthentication() 工具 6.7.0 2.3.0
- 识别指纹的时候故意用错误的指纹进行识别,然后识别失败,wx.startSoterAuthentication() Api走了fail回调函数,之后指纹识别框再次弹出,再次故意用错误的指纹进行识别,识别失败的话不会再走wx.startSoterAuthentication() Api的fail回调,重复识别操作,直到不再有指纹识别机会(苹果6测试的第一次有3次机会,第二次调用api有2次机会,安卓机第一次就有5次机会,请问这个指纹识别机会次数的限制是跟手机有关还是api自己做的?)
- 识别失败的时候能够返回识别失败次数,同次API调用会有多次指纹识别弹框(前提是指纹都不正确),但是只有第一次走了api的fail回调,这样苹果和安卓机的识别机会不同,怎么处理?而且当识别机会达到上限时,苹果能调起安全机制,但是安卓调不起
当指纹识别机会达到上限时,点击“指纹解锁”会调起安全机制
代码片段
let that = this; console.log("生物认证开始") if (wx.canIUse('checkIsSupportSoterAuthentication')) {//检测当前微信版本是否支持指纹识别 wx.checkIsSupportSoterAuthentication({ success(res) { for (var i in res.supportMode) { if (res.supportMode[i] == 'fingerPrint') { console.log("支持指纹识别"); wx.checkIsSoterEnrolledInDevice({ checkAuthMode: 'fingerPrint', success(res) { if (res.isEnrolled == 1) { console.log("有指纹") that.setData({ "hfpointer": true }); if (app.globalData.fingerpNum < 3) { wx.startSoterAuthentication({ requestAuthModes: ['fingerPrint'], challenge: wx.getStorageSync("openId"), authContent: '请用指纹', success(res) { console.log("识别成功", res); //指纹识别成功不再进行手势验证 直接返回首页 wx.navigateTo({ url: '../../index/index' }); }, fail(res) { console.log("识别失败", res) console.log("fingerpNum::" + app.globalData.fingerpNum) app.globalData.fingerpNum += 1; console.log("fingerpNum2::" + app.globalData.fingerpNum) if (app.globalData.fingerpNum >= 3) { that.setData({ "showfp": false }) } else { that.setData({ "showfp": true }) } } }) } } else if (res.isEnrolled == 0) { console.log("无指纹") that.setData({ "hfpointer": false }); } }, fail(res) { console.log("支持指纹识别但是没有指纹") } }) } else { console.log("不支持指纹识别"); that.setData({ "hfpointer": false }); }; } }, fail: res => { console.log("检查是否支持生物认证失败!") } }) }else{ wx.showToast({ title: '您的当前微信版本太低,请注意升级', icon:none, duration:1000 }) let timer=setTimeout(function(){ wx.hideToast(); clearTimeout(timer); },1000); }