更新记录
1.0.0(2026-09-15)
- 首版发布(UTS 插件,API 型,仅 Android)
- 全屏相机页 + Google ML Kit 实时人脸检测,人脸框可视化,稳定约 1.5 秒自动拍照
- 手动快门、自动拍照开关、前后摄切换、左上角 ✕ 返回
- 照片压缩为 JPEG base64 回调返回(maxSize / quality 可配),不写系统相册
- 符合 uni 错误码规范(9010001~9010006,errSubject: zhy-facecapture)
- 相机初始化失败自动重试 2 次;后置不可用自动降级前置
- 全程端侧本地推理,无网络权限、不采集不上传任何数据
- 兼容:uni-app(vue2/vue3/nvue)与 uni-app x(uvue);minSdk 23;armeabi-v7a / arm64-v8a
平台兼容性
uni-app(4.51)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | Android插件版本 | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | 6.0 | 1.0.0 | × | × |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | - | × | × |
uni-app x(4.51)
| Chrome | Safari | Android | Android插件版本 | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|---|
| × | × | 6.0 | 1.0.0 | × | × | × |
其他
| 多语言 | 暗黑模式 | 宽屏模式 |
|---|---|---|
| × | × | √ |
zhy-facecapture 人脸自动拍照(UTS 插件)
uni-app / uni-app x 通用 UTS 插件(API 型,Android)。打开全屏相机页,基于 Google ML Kit 本地实时人脸检测:检测到人脸并保持稳定约 1.5 秒后自动拍照(也可手动快门),照片压缩为 JPEG base64 通过回调返回。
不写入系统相册、不申请网络权限、不采集上传任何数据(ML Kit 离线捆绑模型,全程端侧推理)。
功能特性
- 实时人脸检测 + 人脸框绘制,稳定 1.5s 自动拍照
- 手动快门、自动拍照开关、前后摄切换
- 左上角 ✕ / 系统返回键关闭页面 →
fail回调9010001(示例页示范"取消不弹提示"写法) - 输出可控:
maxSize最长边缩放(默认 1280)、qualityJPEG 质量(默认 85) - 相机初始化失败自动重试 2 次;后置不可用自动降级前置
平台兼容性
| 项 | 说明 |
|---|---|
| 框架 | uni-app(vue2 / vue3 / nvue)与 uni-app x(uvue)均支持 |
| 平台 | Android(云端打包生效);iOS/小程序/Web 不支持 |
| 鸿蒙 | 兼容安卓的鸿蒙(HarmonyOS 4.x 及以下,运行 Android 产物)支持;纯血鸿蒙 HarmonyOS NEXT 暂不支持 |
| Android 版本 | 6.0+(minSdk 23) |
| CPU 架构 | armeabi-v7a、arm64-v8a |
| HBuilderX | 建议 ≥ 4.50(依赖链要求云端 compileSdk ≥ 34;4.87 实测) |
如何使用
从插件市场安装本插件后,直接在页面中 import 调用(无需任何 manifest / nativeplugins 配置):
import { openFaceCapture } from '@/uni_modules/zhy-facecapture'
openFaceCapture({
maxSize: 1280,
quality: 85,
success: (res) => {
// res.base64:JPEG 图片 base64(不含 data:image 前缀)
this.imgSrc = 'data:image/jpeg;base64,' + res.base64
},
fail: (err) => {
if (err.errCode === 9010001) return // 用户返回/取消,静默处理
uni.showToast({ title: err.errMsg, icon: 'none' })
}
})
⚠️ 必须使用自定义调试基座或正式包真机运行(UTS 插件需云端打包编译原生代码后生效)。
openFaceCapture(options)
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
| options.maxSize | number | 否 | 1280 | 输出图片最长边像素(1~5000),超出等比缩放 |
| options.quality | number | 否 | 85 | JPEG 压缩质量(1~100) |
| options.success | (res) => void | 否 | — | 成功回调,res.base64 为图片 base64 |
| options.fail | (err) => void | 否 | — | 取消/失败回调,err.errCode、err.errMsg |
| options.complete | (res) => void | 否 | — | 完成回调(成功与失败均触发) |
错误码(符合 uni 错误码规范,errSubject = zhy-facecapture)
| errCode | 含义 |
|---|---|
| 9010001 | 用户取消(返回/关闭相机页) |
| 9010002 | 相机权限被拒绝 |
| 9010003 | 相机初始化失败(已自动重试 2 次) |
| 9010004 | 拍照失败 |
| 9010005 | 当前平台不支持 |
| 9010006 | 上一次拍照未完成(重复调用) |
权限说明
仅申请 android.permission.CAMERA:用于相机预览、人脸检测与拍照;打开插件相机页时系统弹窗申请,拒绝则 fail(9010002) 并关闭页面。无存储、网络、位置、电话等其他权限。
隐私合规声明
- 插件无 INTERNET 权限,不含任何主动网络请求,不采集、不上传、不持久化任何数据;
- 人脸检测为 ML Kit 离线捆绑模型,全程设备本地推理;
- 照片 base64 仅经进程内存返回宿主 App,后续使用由宿主决定;
- 拍照临时文件写入 App 私有缓存目录,编码完成后立即删除;
- 第三方库:androidx.camera 1.4.2、com.google.mlkit:face-detection 16.1.7、androidx.appcompat 1.7.0、androidx.exifinterface 1.3.7(均 Apache-2.0 开源,本地运算)。
宿主 App 上架时请将上述内容纳入自身《隐私政策》。
常见问题
- 提示需要自定义基座 / UTS 插件不生效:UTS 插件需「制作自定义调试基座」后运行,或正式包云打包。
- 云打包报 AAR metadata compileSdk 错误:HBuilderX 过旧,升级至 4.50+。
- 相机初始化失败:已被占用时插件自动重试;仍失败请关闭其他使用相机的应用。
- 人脸不出照片:确认"自动拍照"开关开启;人脸需占画面约 15% 以上并稳定 1.5 秒。
Demo
插件包内 example/ 目录为可直接运行的示例页(vue2),uni-app x 用法见 README 内 uvue 片段。
授权与定价说明
| 授权版本 | 价格 | 内容 |
|---|---|---|
| 普通授权版 | 99 元 | 加密版:utssdk/index.uts、utssdk/unierror.uts 由插件市场自动加密(interface.uts 保持公开),facelib-release.aar 为编译二进制 |
| 源码授权版 | 399 元 | 可下载完整 UTS 源码,自行修改维护 |
购买须知:
- 两种授权均绑定唯一的 appid + 应用包名,更换其中任一需重新购买;
- 加密版(普通授权)仅支持云端传统打包,不支持离线打包与安心打包,HBuilderX ≥ 3.7.2;
- 市场提供 7 天试用:仅可制作自定义调试基座测试,不可用于正式发行;
- 付费插件的解密校验在购买者提交云打包时于云端完成,不会上传项目其他源码。
开源协议
MIT(源码授权版)。加密版中 UTS 层源码与 AAR 由 DCloud 版权保护机制管理。

收藏人数:
购买源码授权版(
试用
使用 HBuilderX 导入示例项目
赞赏(0)
下载 0
赞赏 0
下载 12604347
赞赏 1949
赞赏
京公网安备:11010802035340号