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 進行身份驗證失敗。請稍后重試。
  • 華為鴻蒙人臉認證SDK開發文檔
  • Android人臉認證SDK開發文檔
  • iOS人臉認證SDK開發文檔

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/38980.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/38980.shtml
英文地址,請注明出處:http://en.pswp.cn/news/38980.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

UE4/5C++多線程插件制作(二十一、使用)

目錄 DemoPawn.h DemoPawn.cpp 會出現的bug 插件 相關的插件制作在上一節已經完成了。 具體的使用方式在第0章已經寫了,get之后去綁定即可。 而后筆者做了一個接口,具體的綁定方式也就在這個接口里面。 接下來最重要的是進行使用,對此我做了一個與藍圖相關的接口,里…

TypeScript教程(一)簡介與安裝

一、簡介 TypeScript 是 JavaScript 的一個超集&#xff0c;擴展了JavaScript的語法&#xff0c;因此現有的JavaScript可與TypeScript一起工作無需修改&#xff0c;支持 ECMAScript 6 標準&#xff08;ES6 教程&#xff09;。 語言特性&#xff1a; 1.類型批注和編譯時類型檢…

怎么學習AJAX相關技術? - 易智編譯EaseEditing

學習AJAX&#xff08;Asynchronous JavaScript and XML&#xff09;相關技術可以讓你實現網頁的異步數據交互&#xff0c;提升用戶體驗。以下是一些學習AJAX技術的步驟和資源&#xff1a; HTML、CSS和JavaScript基礎&#xff1a; 首先&#xff0c;確保你已經掌握了基本的HTML…

【Redis】Redis三種集群模式-主從、哨兵、集群各自架構的優點和缺點對比

文章目錄 前言1. 單機模式2. 主從架構3. 哨兵4. 集群模式總結 前言 如果Redis的讀寫請求量很大&#xff0c;那么單個實例很有可能承擔不了這么大的請求量&#xff0c;如何提高Redis的性能呢&#xff1f;你也許已經想到了&#xff0c;可以部署多個副本節點&#xff0c;業務采用…

Android系統-進程-Binder1-概述

目錄 引言&#xff1a; 一次拷貝 Binder一次通信過程 應用啟動中的binder交互 C/S模式&#xff1a; Binder COMMAND BWR數據結構&#xff1a; 引言&#xff1a; Android的binder是從openbinder發展過來的。包括了binder驅動&#xff0c;Native層&#xff0c;Java層。用…

光耦繼電器:實現電氣隔離的卓越選擇

光耦繼電器是一種常用的電子元件&#xff0c;用于實現電氣隔離和信號傳輸。在工業控制、自動化系統和電力電子等領域&#xff0c;光耦繼電器具有獨特的特點和優勢。本文將從可靠性、隔離性、響應速度和適應性等方面對光耦繼電器的特點進行概述。 光耦繼電器是一種典型的固態繼電…

Mysql內儲存JSON字符串,根據條件進行查詢(包含多層級復雜JSON查詢)

1.模糊查詢json類型字段 存儲的數據格式&#xff08;字段名 people_json&#xff09;&#xff1a; {“name”: “zhangsan”, “age”: “13”, “gender”: “男”} 代碼如下&#xff08;示例&#xff09;&#xff1a; select * from table_name where people_json->$.n…

部署工業物聯網可以選擇哪些通信方案?

部署工業物聯網有諸多意義&#xff0c;諸如提升生產效率&#xff0c;降低管理成本&#xff0c;保障生產品質穩定&#xff0c;應對長期從業勞動力變化趨勢等。針對不同行業、場景&#xff0c;工業物聯網需要選擇不同的通信方案&#xff0c;以達到成本和效益的最佳平衡。本篇就簡…

安全頭響應頭(三)?X-Content-Type-Options

一 X-Content-Type-Options響應頭 說明&#xff1a;先寫個框架,后續補充 思考&#xff1a;請求類型是 "style" 和 "script" 是什么意思? script標簽 style StyleSheet JavaScript MIME type 文件擴展和Content-Type的映射關系 場景&#xff1a; 一個…

Mybatis 源碼 ∞ :雜七雜八

文章目錄 一、前言二、TypeHandler三、KeyGenerator四、Plugin1 Interceptor2 org.apache.ibatis.plugin.Plugin3. 調用場景 五、Mybatis 嵌套映射 BUG1. 示例2. 原因3. 解決方案 六、discriminator 標簽七、其他1. RowBounds2. ResultHandler3. MapKey 一、前言 Mybatis 官網…

mysql主從復制搭建(一主一從)

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言MySQL復制過程分為三部&#xff1a; 一、準備工作二、配置>主庫Master三、配置>從庫SlaveSlave_IO_Running: YesSlave_SQL_Running: Yes 四、測試至此&am…

8 | 美國航班數據分析

"在現代快節奏的生活中,航空旅行已經成為人們出行的重要方式之一。然而,航班的準時性一直以來都是旅客和航空公司關注的焦點。無論是商務出差還是休閑度假,乘客們都希望能夠在既定的時間內安全、準時地到達目的地。而對于航空公司而言,準點運營不僅關乎乘客體驗,還涉…

TCP的相關性質

文章目錄 流量控制擁塞控制擁塞窗口 延遲應答捎帶應答面向字節流粘包問題TCP的異常 流量控制 由于接收端處理數據的速度是有限的&#xff0c;如果發送端發的太快&#xff0c;那么接收端的緩沖區就可能會滿。此時如果發送端還發數據&#xff0c;就會出現丟包現象&#xff0c;并…

輕量級自動化測試框架WebZ

一、什么是WebZ WebZ是我用Python寫的“關鍵字驅動”的自動化測試框架&#xff0c;基于WebDriver。 設計該框架的初衷是&#xff1a;用自動化測試讓測試人員從一些簡單卻重復的測試中解放出來。之所以用“關鍵字驅動”模式是因為我覺得這樣能讓測試人員&#xff08;測試執行人員…

【Sklearn】基于線性判別法的數據分類預測(Excel可直接替換數據)

【Sklearn】基于線性判別法的數據分類預測(Excel可直接替換數據) 1.模型原理2.模型參數3.文件結構4.Excel數據5.下載地址6.完整代碼7.運行結果1.模型原理 線性判別分析(Linear Discriminant Analysis,簡稱LDA)是一種經典的模式識別和分類方法,它的目標是找到一個投影,將…

Linux系列講解 —— FTP協議的應用

簡單介紹一下FTP文件傳輸協議在linux系統中的應用。 目錄 0. 基本概念1. FTP Server1.1 安裝FTP Server1.2 FTP Server開啟和關閉1.3 查看FTP Server是否開啟1.4 FTP服務器配置 2. FTP Client2.1 lftp2.2 ftp2.3 sftp2.4 文件資源管理器集成的ftp和sftp 3. ftp常用命令 0. 基本…

IDE的下載和使用

IDE 文章目錄 IDEJETBRAIN JETBRAIN 官網下載對應的ide 激活方式 dxm的電腦已經把這個腳本下載下來了&#xff0c;腳本是macjihuo 以后就不用買了

Neo4j之SET基礎

在 Neo4j 中&#xff0c;SET 語句用于更新節點或關系的屬性。它允許你修改節點或關系的屬性值&#xff0c;可以單獨使用&#xff0c;也可以與其他查詢語句&#xff08;如 MATCH、CREATE、MERGE 等&#xff09;一起使用。以下是一些使用 SET 語句的常見例子&#xff0c;以及它們…

深入源碼分析kubernetes informer機制(四)DeltaFIFO

[閱讀指南] 這是該系列第四篇 基于kubernetes 1.27 stage版本 為了方便閱讀&#xff0c;后續所有代碼均省略了錯誤處理及與關注邏輯無關的部分。 文章目錄 client-go中的存儲結構DeltaFIFOdelta索引 keyqueue push操作delta push 去重 queue pop操作 總結 client-go中的存儲結構…

設計模式

本文主要介紹設計模式的主要設計原則和常用設計模式。 一、UML畫圖 1.類圖 2.時序圖 二、設計模式原則 1.單一職責原則 就是一個方法、一個類只做一件事&#xff1b; 2.開閉原則 就是軟件的設計應該對拓展開放&#xff0c;對修改關閉&#xff0c;這在java中體現最明顯的就…