更新记录

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)、quality JPEG 质量(默认 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.errCodeerr.errMsg
options.complete (res) => void 完成回调(成功与失败均触发)

错误码(符合 uni 错误码规范,errSubject = zhy-facecapture)

errCode 含义
9010001 用户取消(返回/关闭相机页)
9010002 相机权限被拒绝
9010003 相机初始化失败(已自动重试 2 次)
9010004 拍照失败
9010005 当前平台不支持
9010006 上一次拍照未完成(重复调用)

权限说明

仅申请 android.permission.CAMERA:用于相机预览、人脸检测与拍照;打开插件相机页时系统弹窗申请,拒绝则 fail(9010002) 并关闭页面。无存储、网络、位置、电话等其他权限。

隐私合规声明

  1. 插件无 INTERNET 权限,不含任何主动网络请求,不采集、不上传、不持久化任何数据;
  2. 人脸检测为 ML Kit 离线捆绑模型,全程设备本地推理
  3. 照片 base64 仅经进程内存返回宿主 App,后续使用由宿主决定;
  4. 拍照临时文件写入 App 私有缓存目录,编码完成后立即删除;
  5. 第三方库: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 上架时请将上述内容纳入自身《隐私政策》。

常见问题

  1. 提示需要自定义基座 / UTS 插件不生效:UTS 插件需「制作自定义调试基座」后运行,或正式包云打包。
  2. 云打包报 AAR metadata compileSdk 错误:HBuilderX 过旧,升级至 4.50+。
  3. 相机初始化失败:已被占用时插件自动重试;仍失败请关闭其他使用相机的应用。
  4. 人脸不出照片:确认"自动拍照"开关开启;人脸需占画面约 15% 以上并稳定 1.5 秒。

Demo

插件包内 example/ 目录为可直接运行的示例页(vue2),uni-app x 用法见 README 内 uvue 片段。

授权与定价说明

授权版本 价格 内容
普通授权版 99 元 加密版:utssdk/index.utsutssdk/unierror.uts 由插件市场自动加密(interface.uts 保持公开),facelib-release.aar 为编译二进制
源码授权版 399 元 可下载完整 UTS 源码,自行修改维护

购买须知:

  1. 两种授权均绑定唯一的 appid + 应用包名,更换其中任一需重新购买;
  2. 加密版(普通授权)仅支持云端传统打包,不支持离线打包与安心打包,HBuilderX ≥ 3.7.2;
  3. 市场提供 7 天试用:仅可制作自定义调试基座测试,不可用于正式发行;
  4. 付费插件的解密校验在购买者提交云打包时于云端完成,不会上传项目其他源码。

开源协议

MIT(源码授权版)。加密版中 UTS 层源码与 AAR 由 DCloud 版权保护机制管理。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。