uniapp APP端使用指纹

使用插件指纹模板:json

https://ext.dcloud.net.cn/plugin?id=358this

Fingerprint模块管理指纹识别spa

要使用指纹识别功能须要具有条件:.net

  • 确认当前设备环境是否支持指纹识别,
  • 当前设备是否设置密码锁屏,
  • 当前设备是否已经录入指纹。

(Android平台6.0及以上系统支持,只识别标准Android的指纹API,仅适配Google官方指纹识别的标准接口的设备)插件

以上条件都要知足才能够使用识别功能,识别功能,指的是与手机中已录入的指纹进行比对检测,也就是说,只要与手机中录入任意指纹比对成功,即可进入成功回调。code

首先须要获取获得权限:blog

在 manifest.json文件中配置接口

由于目前市场上仍是有不少设备不支持指纹,因此要先使用 plus.fingerprint.isSupport()  方法判断(如下三个方法均返回值为Boolean类型)get

// #ifdef APP-PLUS
if (!plus.fingerprint.isSupport()) { plus.nativeUI.toast('此设备不支持指纹识别'); console.log('此设备不支持指纹识别') } // #endif

再使用   plus.fingerprint.isKeyguardSecure()  判断是否开启密码锁屏it

// #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指向发生改变,可在回调里使用其余方法

相关文章
相关标签/搜索