面容、指紋識別插件(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_UNAVAILABLE | 1 | 硬件不可用。 | 請確認設備類型和OS版本是否支持,參見支持的設備。 |
FACE_ERROR_UNABLE_TO_PROCESS | 2 | 傳感器無法處理當前圖像。 | 如問題反復出現,請使用在線提單聯系維護人員。 |
FACE_ERROR_TIMEOUT | 3 | 人臉識別超時。 | 請在短時間內完成識別。 |
FACE_ERROR_NO_SPACE | 4 | 沒有足夠的存儲空間。人臉識別不會返回此錯誤碼。 | - |
FACE_ERROR_CANCELED | 5 | 硬件臨時不可用,操作被取消。 | 請稍后重試。 |
FACE_ERROR_UNABLE_TO_REMOVE | 6 | 刪除人臉失敗。人臉識別不會返回此錯誤碼。 | - |
FACE_ERROR_LOCKOUT | 7 | 人臉失敗次數過多,人臉識別鎖定。 | 請稍后重試。 |
FACE_ERROR_VENDOR | 8 | 人臉與機主人臉不匹配。 | 如機主無法認證通過,建議重新錄入人臉后重試。 |
FACE_ERROR_LOCKOUT_PERMANENT | 9 | 人臉失敗次數過多,弱認證鎖定。 | 請使用強認證(如PIN碼)解鎖。 |
FACE_ERROR_USER_CANCELED | 10 | FACE_ERROR_USER_CANCELED | - |
FACE_ERROR_NOT_ENROLLED | 11 | 用戶未錄入人臉。 | 請錄入人臉。 |
FACE_ERROR_HW_NOT_PRESENT | 12 | FACE_ERROR_HW_NOT_PRESENT | 請確認設備類型和OS版本是否支持,參見支持的設備。 |
Android
面容錯誤碼
指紋錯誤碼
面容錯誤碼 | 值 | 描述 | 解決方法 |
---|---|---|---|
BIOMETRIC_ERROR_HW_UNAVAILABLE | 1 | 硬件不可用。 | 請確認設備類型和OS版本是否支持。 |
BIOMETRIC_ERROR_NONE_ENROLLED | 11 | 用戶沒有注冊任何生物信息 | 建議錄入人臉后重試。 |
BIOMETRIC_ERROR_NO_HARDWARE | 12 | 沒有生物識別硬件。 | - |
BIOMETRIC_ERROR_SECURITY_UPDATE_REQUIRED | 15 | 已發現安全漏洞,并且在安全更新解決此問題之前,傳感器將不可用。 | - |
BIOMETRIC_SUCCESS | 0 | 識別成功 | - |
指紋錯誤碼 | 值 | 描述 | 解決方法 |
---|---|---|---|
FINGERPRINT_ACQUIRED_GOOD | 0 | 獲取指紋成功 | - |
FINGERPRINT_ACQUIRED_IMAGER_DIRTY | 3 | 懷疑或檢測到傳感器上有污垢,指紋圖像噪音太大。 | 清潔后重試。 |
FINGERPRINT_ACQUIRED_INSUFFICIENT | 2 | 皮膚干燥或傳感器可能臟污。 | 清潔后重試。 |
FINGERPRINT_ACQUIRED_PARTIAL | 1 | 采集到部分指紋。 | 應告知用戶需要采取什么措施來解決此問題,例如“用力按壓傳感器”。 |
FINGERPRINT_ACQUIRED_TOO_FAST | 5 | 采集期間移動手指,指紋圖像不完整 | 將手指在傳感器上停留更長時間,適合線性陣列傳感器。 |
FINGERPRINT_ACQUIRED_TOO_SLOW | 4 | 缺乏移動,導致指紋讀取失敗 | 請移動手指,適合需要滑動運動的線性陣列傳感器。 |
FINGERPRINT_ERROR_CANCELED | 5 | 操作被取消,當用戶切換、設備被鎖定或另一個待處理操作阻止或禁用它時,可能會發生這種情況 | 稍后再試 |
FINGERPRINT_ERROR_HW_NOT_PRESENT | 12 | 設備不支持指紋傳感器 | 請確認設備類型和OS版本是否支持。 |
FINGERPRINT_ERROR_HW_UNAVAILABLE | 1 | 硬件不可用 | 請稍后再試。 |
FINGERPRINT_ERROR_LOCKOUT | 7 | 操作被取消,因為 API 由于嘗試次數過多而被鎖定。此情況會在 5 次失敗嘗試后發生,并持續 30 秒。 | 請稍后再試。 |
FINGERPRINT_ERROR_LOCKOUT_PERMANENT | 9 | 由于 FINGERPRINT_ERROR_LOCKOUT 發生次數過多,操作被取消。在用戶使用強身份驗證(PIN/圖案/密碼)解鎖之前,指紋身份驗證將被禁用 | - |
FINGERPRINT_ERROR_NO_FINGERPRINTS | 11 | 用戶沒有登記任何指紋 | 請錄入指紋后重試。 |
FINGERPRINT_ERROR_NO_SPACE | 4 | 沒有足夠的剩余存儲空間來完成該操作 | - |
FINGERPRINT_ERROR_TIMEOUT | 3 | 等待過長導致超時 | - |
FINGERPRINT_ERROR_UNABLE_TO_PROCESS | 2 | 無法處理當前指紋圖像 | - |
FINGERPRINT_ERROR_USER_CANCELED | 10 | 用戶已取消 | - |
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 進行身份驗證失敗。 | 請稍后重試。 |
- 華為鴻蒙人臉認證SDK開發文檔
- Android人臉認證SDK開發文檔
- iOS人臉認證SDK開發文檔