uni-app 面容、指纹识别插件(uni-face-login)

面容、指纹识别插件(uni-face-login)

介绍

人脸指纹登录授权,可以使用手机自带的人脸、指纹进行生物识别,进而判断是否机主本人,从而进行授权验证,适配安卓、iOS、鸿蒙设备

猛戳这里去插件市场看看

使用

该插件支持鸿蒙、安卓、iOS系统设备;

鸿蒙设备测试面容、指纹适配正常;

最低支持安卓5.0,因为安卓6.0开始才有的指纹,6.0以下会返回错误码,6.0或6.0以上正常,且国内厂商禁止使用人脸认证,只能调起指纹识别

iOS最低支持11.0,设备会先进行面容识别(iOS从iphonex开始有的面容识别,之前版本支持指纹识别),认证失败两次会进行密码认证,继续失败手机会锁住,锁屏时间会累加

更多定制功能请联系微信:soushin6

vue代码调用示例

<template>
	<view>
		<view style="height: 50rpx;"></view>
		<button @click="callInit()">Sdk初始化</button>
		<view style="height: 50rpx;"></view>
		<button @click="callNative()">人脸登录</button>
		<view style="height: 50rpx;"></view>
		<button @click="callSupport()">是否支持人脸、指纹认证</button>
		<view style="height: 50rpx;"></view>
		<button @click="callDebug()">调试日志开关配置</button>
	</view>
</template>

<script>
	var faceLogin = uni.requireNativePlugin("CZ-FaceLogin")

	export default {
		data() {
			return {
				
			}
		},
		methods: {
			callInit(){
				var ret = faceLogin.createFace();
				uni.showModal({
					title:'提示',
					content:JSON.stringify(ret)
				})
			},
			callNative(){
				console.log("调用原始方法")
				faceLogin.authLogin({
						'fingerTitle': '123指纹识别',
						'fingerContent': '请123使用指纹识别',
						'loadingText':'识别。。。',
						'passwordHint':'请输入密码,确保环境安全'
					},
					(ret) => {
						console.log(ret)
						uni.showModal({
							title:'提示',
							content:JSON.stringify(ret)
						})
					})
			},
			callSupport(){
				faceLogin.isSupport(
					(ret)=>{
						uni.showModal({
							title:'提示',
							content:JSON.stringify(ret)
						})
					}
				);
			},
			callDebug(){
				var ret = faceLogin.debug({'enableLog': true,});
				uni.showModal({
					title:'提示',
					content:JSON.stringify(ret)
				})
			}, 
		}
	}
</script>

<style>

</style>

nvue代码调用示例


<template>
	<div>
		<div style="height: 50rpx;"></div>
		<button @click="callInit">Sdk初始化</button>
		<div style="height: 50rpx;"></div>
		<button @click="callNative">人脸登录</button>
		<div style="height: 50rpx;"></div>
		<button @click="callSupport">是否支持人脸、指纹认证</button>
		<div style="height: 50rpx;"></div>
		<button @click="callDebug">调试日志开关配置</button>
	</div>
</template>

<script>
	var faceLogin = uni.requireNativePlugin("CZ-FaceLogin")

	export default {
		onLoad() {
			uni.setNavigationBarTitle({
				title:"人脸认证nvue"
			})
		},
		methods: {
			callInit(){
				var ret = faceLogin.createFace();
				uni.showModal({
					title:'提示',
					content:JSON.stringify(ret)
				})
			},
			callNative(){
				faceLogin.authLogin({
						'fingerTitle': '指纹识别',
						'fingerContent': '请使用指纹识别',
						'loadingText':'识别。。。',
						'passwordHint':'请输入密码,确保环境安全'
					},
					(ret) => {
						uni.showModal({
							title:'提示',
							content:JSON.stringify(ret)
						})
					})
			},
			callSupport(){
				faceLogin.isSupport(
					(ret)=>{
						uni.showModal({
							title:'提示',
							content:JSON.stringify(ret)
						})
					}
				);
			},
			callDebug(){
				var ret = faceLogin.debug({'enableLog': true,});
				uni.showModal({
					title:'提示',
					content:JSON.stringify(ret)
				})
			}, 
		}
	}
</script>
<style>
</style>

权限申请

鸿蒙 + android

	//离线打包需要在AndroidManifest.xml里面增加
    <uses-permission android:name="android.permission.USE_BIOMETRIC" />
    <uses-permission android:name="android.permission.USE_FINGERPRINT" />
    <uses-permission android:name="android.permission.CAMERA" />
	
    <uses-sdk tools:overrideLibrary="com.huawei.security.localauthentication"/>

iOS

	//离线打包需要在info.plist里面增加
	NSFaceIDUsageDescription

API调用说明

API描述参数必须
createFace()初始化识别SDK,在调用其他api之前必须调用此方法,否则会返回504
authLogin()开始识别fingerTitle 安卓指纹识别标题,
fingerContent 安卓指纹识别描述,
loadingText 鸿蒙、安卓面容识别等待框提示文本,
passwordHint iOS密码认证的提示文本;
callback:返回内容见下方错误码说明
isSupport()当前设备是否支持生物识别(指纹/面容)callback:返回code=0支持,code=1不支持
debug()设置调试日志输出开关enableLog true开 false关,默认关

错误码

错误码描述
0识别成功
1识别失败
2设备识别错误,请结合下方附录,或查看开发文档
3帮助信息,一些距离远近、识别角度等一些提示,看需处理
4取消
501当前系统未录入信息
502当前系统不支持人脸识别,或是人脸识别权限未开
503当前系统不支持生物识别
504请调用createFace()初始化SDK

附录

鸿蒙错误码

错误码描述解决方法
FACE_ERROR_HW_UNAVAILABLE1硬件不可用。请确认设备类型和OS版本是否支持,参见支持的设备
FACE_ERROR_UNABLE_TO_PROCESS2传感器无法处理当前图像。如问题反复出现,请使用在线提单联系维护人员。
FACE_ERROR_TIMEOUT3人脸识别超时。请在短时间内完成识别。
FACE_ERROR_NO_SPACE4没有足够的存储空间。人脸识别不会返回此错误码。-
FACE_ERROR_CANCELED5硬件临时不可用,操作被取消。请稍后重试。
FACE_ERROR_UNABLE_TO_REMOVE6删除人脸失败。人脸识别不会返回此错误码。-
FACE_ERROR_LOCKOUT7人脸失败次数过多,人脸识别锁定。请稍后重试。
FACE_ERROR_VENDOR8人脸与机主人脸不匹配。如机主无法认证通过,建议重新录入人脸后重试。
FACE_ERROR_LOCKOUT_PERMANENT9人脸失败次数过多,弱认证锁定。请使用强认证(如PIN码)解锁。
FACE_ERROR_USER_CANCELED10FACE_ERROR_USER_CANCELED-
FACE_ERROR_NOT_ENROLLED11用户未录入人脸。请录入人脸。
FACE_ERROR_HW_NOT_PRESENT12FACE_ERROR_HW_NOT_PRESENT请确认设备类型和OS版本是否支持,参见支持的设备

Android
面容错误码
指纹错误码

面容错误码描述解决方法
BIOMETRIC_ERROR_HW_UNAVAILABLE1硬件不可用。请确认设备类型和OS版本是否支持。
BIOMETRIC_ERROR_NONE_ENROLLED11用户没有注册任何生物信息建议录入人脸后重试。
BIOMETRIC_ERROR_NO_HARDWARE12没有生物识别硬件。-
BIOMETRIC_ERROR_SECURITY_UPDATE_REQUIRED15已发现安全漏洞,并且在安全更新解决此问题之前,传感器将不可用。-
BIOMETRIC_SUCCESS0识别成功-
指纹错误码描述解决方法
FINGERPRINT_ACQUIRED_GOOD0获取指纹成功-
FINGERPRINT_ACQUIRED_IMAGER_DIRTY3怀疑或检测到传感器上有污垢,指纹图像噪音太大。清洁后重试。
FINGERPRINT_ACQUIRED_INSUFFICIENT2皮肤干燥或传感器可能脏污。清洁后重试。
FINGERPRINT_ACQUIRED_PARTIAL1采集到部分指纹。应告知用户需要采取什么措施来解决此问题,例如“用力按压传感器”。
FINGERPRINT_ACQUIRED_TOO_FAST5采集期间移动手指,指纹图像不完整将手指在传感器上停留更长时间,适合线性阵列传感器。
FINGERPRINT_ACQUIRED_TOO_SLOW4缺乏移动,导致指纹读取失败请移动手指,适合需要滑动运动的线性阵列传感器。
FINGERPRINT_ERROR_CANCELED5操作被取消,当用户切换、设备被锁定或另一个待处理操作阻止或禁用它时,可能会发生这种情况稍后再试
FINGERPRINT_ERROR_HW_NOT_PRESENT12设备不支持指纹传感器请确认设备类型和OS版本是否支持。
FINGERPRINT_ERROR_HW_UNAVAILABLE1硬件不可用请稍后再试。
FINGERPRINT_ERROR_LOCKOUT7操作被取消,因为 API 由于尝试次数过多而被锁定。此情况会在 5 次失败尝试后发生,并持续 30 秒。请稍后再试。
FINGERPRINT_ERROR_LOCKOUT_PERMANENT9由于 FINGERPRINT_ERROR_LOCKOUT 发生次数过多,操作被取消。在用户使用强身份验证(PIN/图案/密码)解锁之前,指纹身份验证将被禁用-
FINGERPRINT_ERROR_NO_FINGERPRINTS11用户没有登记任何指纹请录入指纹后重试。
FINGERPRINT_ERROR_NO_SPACE4没有足够的剩余存储空间来完成该操作-
FINGERPRINT_ERROR_TIMEOUT3等待过长导致超时-
FINGERPRINT_ERROR_UNABLE_TO_PROCESS2无法处理当前指纹图像-
FINGERPRINT_ERROR_USER_CANCELED10用户已取消-

iOS错误码

错误码描述解决方法
appCancel-9该应用程序取消了身份验证。-
systemCancel-4系统取消了认证。-
userCancel-2用户点击身份验证对话框中的取消按钮。-
biometryDisconnected-13该设备仅使用可拆卸附件支持生物识别,但未连接配对的附件。-
biometryNotPaired-12该设备仅使用可拆卸配件支持生物识别,但未配对任何配件。-
biometryLockout-8由于失败的尝试次数过多,生物认证已被锁定。-
biometryNotAvailable-6该设备不支持生物识别。请确认设备是否支持。
biometryNotEnrolled-7用户没有注册生物识别身份。请注册。
authenticationFailed-1用户未能提供有效的凭据。-
invalidContext-10上下文不可用。-
invalidDimensions-14--
notInteractive-1004禁止显示所需的认证用户界面。-
passcodeNotSet-5设备上未设置密码。请设置密码后重试。
userFallback-3用户点击身份验证对话框中的回退按钮,但身份验证策略没有可用的回退按钮。-
watchNotAvailable-11尝试使用 Apple Watch 进行身份验证失败。请稍后重试。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值