使用插件指纹模板:
https://ext.dcloud.net.cn/plugin?id=358
Fingerprint模块管理指纹识别
要使用指纹识别功能需要具备条件:
- 确认当前设备环境是否支持指纹识别,
- 当前设备是否设置密码锁屏,
- 当前设备是否已经录入指纹。
(Android平台6.0及以上系统支持,只识别标准Android的指纹API,仅适配Google官方指纹识别的标准接口的设备)
以上条件都要满足才可以使用识别功能,识别功能,指的是与手机中已录入的指纹进行比对检测,也就是说,只要与手机中录入任意指纹比对成功,便可进入成功回调。
首先需要获取得到权限:
在 manifest.json文件中配置
因为目前市场上还是有很多设备不支持指纹,所以要先使用 plus.fingerprint.isSupport() 方法判断(以下三个方法均返回值为Boolean类型)
// #ifdef APP-PLUS
if (!plus.fingerprint.isSupport()) {
plus.nativeUI.toast('此设备不支持指纹识别');
console.log('此设备不支持指纹识别')
}
// #endif
再使用 plus.fingerprint.isKeyguardSecure() 判断是否开启密码锁屏
// #ifdef APP-PLUS
if (!plus.fingerprint.isKeyguardSecure()) {
plus.nativeUI.toast('此设备未设置密码锁屏');
console.log('此设备未设置密码锁屏')
}
// #endif
再然后使用 plus.fingerprint.isEnrolledFingerprints() 判断是否录入指纹
// #ifdef APP-PLUS
if (!plus.fingerprint.isEnrolledFingerprints()) {
plus.nativeUI.toast('此设备未录入指纹');
console.log('此设备未录入指纹')
}
// #endif
因项目需要,这里我将指纹识别封装为一个方法
fingerprint: function() {
// #ifdef APP-PLUS
plus.fingerprint.authenticate(function() {
console.log('匹配成功');
}, function(e) {
switch (e.code) {
case e.AUTHENTICATE_MISMATCH:
plus.nativeUI.toast('指纹匹配失败,请重新输入');
break;
case e.AUTHENTICATE_OVERLIMIT:
plus.nativeUI.closeWaiting(); //兼容Android平台关闭等待框
plus.nativeUI.toast('指纹识别失败次数超出限制,请使用其它方式进行认证');
break;
case e.CANCEL:
plus.nativeUI.toast('已取消识别');
break;
default:
plus.nativeUI.closeWaiting(); //兼容Android平台关闭等待框
plus.nativeUI.toast('指纹识别失败,请重试');
break;
}
});
// #endif
},
注:回调里this指向发生改变,可在回调里使用其他方法
来源:oschina
链接:https://my.oschina.net/u/4396881/blog/3375215