老向
老向
  • 发布:2021-12-04 17:42
  • 更新:2021-12-04 17:42
  • 阅读:431

【报Bug】plus.fingerprint在iphone下FACE ID的解锁问题

分类:HTML5+

产品分类: HTML5+

HBuilderX版本号: 3.2.16

手机系统: iOS

手机系统版本号: iOS 14

手机厂商: 苹果

手机机型: iphone X

打包方式: 云端

示例代码:

plus.fingerprint.authenticate(function(){
plus.nativeUI.closeWaiting();//兼容Android平台关闭等待框
alert('指纹识别成功');
}, function(e){
switch(e.code) {
case e.AUTHENTICATE_MISMATCH:
plus.nativeUI.toast('指纹匹配失败,请重新输入');
break;
case e.AUTHENTICATE_OVERLIMIT:
plus.nativeUI.closeWaiting();//兼容Android平台关闭等待框
plus.nativeUI.alert('指纹识别失败次数超出限制,请使用其它方式进行认证');
break;
default:
plus.nativeUI.closeWaiting();//兼容Android平台关闭等待框
plus.nativeUI.alert('指纹识别失败('+e.code+'),请重试');
break;
}
});

错误代码1,不支持。iphoneX是FACE ID解锁,没指纹的。

又测试了Native.js方式:

function authenticate(){
var LAContext = plus.ios.importClass('LAContext');
var lacontext = plus.ios.newObject("LAContext");
var isSupport = lacontext.canEvaluatePolicyerror(1, null); //返回是否支持指纹识别
console.log('isSupport:'+isSupport);
if(isSupport){
lacontext.evaluatePolicylocalizedReasonreply(2, '请校验指纹A', function (success){
console.log('success:'+success);
});
}
}

用试上面的代码测试,FACE ID能正常工作。
但是lacontext.evaluatePolicylocalizedReasonreply(2, '请校验指纹A', function (redate){
console.log('redate:'+redate);
});
这段回调拿不到实别的结果,打印 redate:undefined

操作步骤:

错误代码1

预期结果:

错误代码1

实际结果:

错误代码1

bug描述:

plus.fingerprint.authenticate(function(){
plus.nativeUI.closeWaiting();//兼容Android平台关闭等待框
alert('指纹识别成功');
}, function(e){
switch(e.code) {
case e.AUTHENTICATE_MISMATCH:
plus.nativeUI.toast('指纹匹配失败,请重新输入');
break;
case e.AUTHENTICATE_OVERLIMIT:
plus.nativeUI.closeWaiting();//兼容Android平台关闭等待框
plus.nativeUI.alert('指纹识别失败次数超出限制,请使用其它方式进行认证');
break;
default:
plus.nativeUI.closeWaiting();//兼容Android平台关闭等待框
plus.nativeUI.alert('指纹识别失败('+e.code+'),请重试');
break;
}
});

错误代码1,不支持。iphoneX是FACE ID解锁,没指纹的。

又测试了Native.js方式:

function authenticate(){
var LAContext = plus.ios.importClass('LAContext');
var lacontext = plus.ios.newObject("LAContext");
var isSupport = lacontext.canEvaluatePolicyerror(1, null); //返回是否支持指纹识别
console.log('isSupport:'+isSupport);
if(isSupport){
lacontext.evaluatePolicylocalizedReasonreply(2, '请校验指纹A', function (success){
console.log('success:'+success);
});
}
}

用试上面的代码测试,FACE ID能正常工作。
但是lacontext.evaluatePolicylocalizedReasonreply(2, '请校验指纹A', function (redate){
console.log('redate:'+redate);
});
这段回调拿不到实别的结果,打印 redate:undefined

2021-12-04 17:42 负责人:无 分享
已邀请:

该问题目前已经被锁定, 无法添加新回复