夜雨聆风学习资料网

ARTICLE · 1042991

这个 uni-app 人脸识别插件,主打一个「完全离线」

这个 uni-app 人脸识别插件,主打一个「完全离线」

做实名认证、身份核验这类需求时,常见做法是把采集到的人脸图传到后端去比对。但今天要聊的这个方案走的是另一条路——比对和活体判断全部在手机本地完成,不依赖任何后台 API。

它就是 FaceAISDK_uniapp_UTS,一个专为 uni-app / uni-app x 打造的 UTS 插件,GitHub 上开源,iOS 和 Android 双端都能用。

项目地址:https://github.com/FaceAISDK/FaceAISDK_uniapp_UTS


一、它解决什么问题

简单说:让你在 uni-app 项目里,用一套接口搞定人脸识别和活体检测,而且全程离线

离线带来的直接好处有三个:

响应快:不用等网络来回,本地算完直接出结果
隐私友好:用户的人脸数据不出设备
省成本:不依赖后端服务,没有调用费用

如果你的项目正好用的是 uni-app 技术栈,又需要同时覆盖 iOS 和 Android,这个插件的目标就是把两端的原生能力统一成一套 UTS 接口。


二、核心能力

1. 人脸识别(1:1 比对)

传入待比对的人脸,SDK 返回相似度分数,是否通过由你设定的阈值(threshold)决定。典型的"本人 vs 证件照"比对场景。

2. 活体检测(三种方式)

这是防"用照片/视频糊弄"的关键。插件提供了三种活体方式,各有适用场景:

方式
怎么玩
建议
动作活体
用户按提示做指定动作
通用,配合度高时最稳
炫彩活体
屏幕发射彩光投射脸部感应
强光下易失败,注意环境
静默活体
无感检测,用户啥都不用做
阈值建议 0.85–0.95

3. 状态码回调

整个识别/活体流程通过回调返回状态码(0–13),覆盖了从初始化、比对成功/失败、各类活体结果,到超时、多人脸、光线过强等异常。

接入建议:先把状态码的所有分支写全,再往上补业务逻辑,不容易出漏。


三、兼容性

✅ iOS、Android 双端
✅ Vue2、Vue3、uvue 都兼容
✅ 当前版本 4.6.2(2026-09-10 更新),持续迭代中

四、接入流程(重点看这里)

官方反复强调一个顺序,这也是大部分集成问题的根源:

先做自定义调试基座,再用基座运行项目。

具体两步:

第一步:制作自定义调试基座

运行 ➔ 运行到手机或模拟器 ➔ 制作自定义调试基座 ➔ 打包

第二步:用自定义基座运行

运行 ➔ 运行到 Android/iOS 基座 ➔ 选择使用自定义基座运行 ➔ 选择本地基座 ➔ 运行

在需要用到的页面里引入:

import { faceVerify } from "@/uni_modules/FaceAISDK-Core";

⚠️ 几个容易踩的坑

1
打包基座期间别改 native 下的原生代码——改了就必须重新制作基座,因为 Kotlin/Swift 的编译产物已经固化
2
云打包服务繁忙失败:重新提交打包就行,多试几次
3
强烈建议先跑通官方示例项目,熟悉接口再集成到主工程

五、定制与优化

UI 定制有边界

UTS 插件版本只支持自定义字体和主题颜色。如果你想改页面布局、交互逻辑,得拉取原生 SDK 自己封装:

iOS SDK:FaceAISDK_iOS
Android SDK:FaceAISDK_Android

包体积优化

Android 动态库默认带了 32 位老旧设备的兼容。如果只面向现代主流手机,可以在 build.gradle 里过滤 SO 库,只保留 arm64-v8a,APK 体积能明显缩小。

高级功能

外接摄像头(UVC 协议)、相册批量导入这些不在 UTS 插件默认范围内,需要下载原生体验包。


六、实战建议

🎯 先跑通示例再集成,别一上来就往主工程里塞
🌞 炫彩活体避开强光,室外场景建议用「动作 + 静默」组合
🔧 深度 UI 改动要下沉到原生层,UTS 层灵活性有限,先评估成本再决定

七、小结

这个项目的定位很清晰:给 uni-app 生态提供一个开箱即用、纯离线、双端统一的人脸核验方案

核心价值就三个字——离线、无依赖。适合隐私要求高、又不想承担后端比对成本的业务。

接入本身不复杂,真正的门槛在于自定义调试基座的制作流程,以及原生层定制的边界。把基座流程走对、状态码分支写全,落地基本很顺。

遇到问题时,官方建议附上 HBuilderX 版本、Vue 版本、测试机型和报错日志,反馈效率会高很多。


项目地址:https://github.com/FaceAISDK/FaceAISDK_uniapp_UTS

相关学习资料