更新记录

1.0.0(2026-04-23)

  1. 支持 Android / iOS 原生相机预览和自动采集
  2. 支持录制过程中按间隔抓取原生预览帧
  3. 提供统一 nvue 模板页,预留业务验证接口接入点
  4. 默认不依赖额外抽帧插件,业务层可自行处理 base64、比对接口和打卡结果

平台兼容性

uni-app(4.75)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
× × × × × ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
× × × × × × × × × × × ×

uni-app x(4.75)

Chrome Safari Android iOS 鸿蒙 微信小程序
× × × ×

austin-face-checkin

austin-face-checkin 是一个贴近打卡业务场景的 uni-app 原生插件,支持 Android / iOS。

当前目录下的 index.nvue 是统一模板页,主要演示:

  • 前置相机原生预览
  • 页面就绪后自动开始采集
  • 录制过程中按间隔抓取预览帧
  • 拿到帧图路径后继续做 base64 / 业务验证
  • 业务接口默认关闭,不影响插件独立测试

场景说明

这个插件更适合以下场景:

  • 人脸打卡
  • 人脸签到
  • 考勤核验
  • 门禁验证前的活体采集

模板页默认行为就是“打卡采集页”:

  • 相机就绪后自动开始录制
  • 默认每 1000ms 抓取一次过程帧
  • 默认不直接调用你的后端接口
  • 你可以在业务层继续做 base64 转换、相似度校验和成功/失败策略

抽帧说明

录制过程中的原生预览抓帧已经内置在本插件里,当前版本默认只走原生抓帧,不依赖额外插件。

如果你后续还需要“按视频文件时间点抽帧”这类独立能力,可以再单独接入 austin-video-frame 视频抽帧插件

安装

uni_modules/austin-face-checkin 目录复制到项目的 uni_modules 目录下。

模板页示例:

说明:

  • 当前插件只面向 nvue / uvue 页面接入
  • app-vue 不作为该原生组件的主接入形态

权限要求

iOS

  • NSCameraUsageDescription
  • NSMicrophoneUsageDescription

Android

  • android.permission.CAMERA
  • android.permission.RECORD_AUDIO

说明:

  • 模板页默认传入的是 :mute="true"
  • 如果你只做静音采集,业务上可以不使用录音内容

组件用法

<austin-face-checkin
  ref="recorderRef"
  cameraPosition="front"
  resolution="720p"
  :mute="true"
  :maxDurationMs="0"
  :frameCaptureEnabled="true"
  :frameCaptureIntervalMs="1000"
  :frameCaptureQuality="85"
  @ready="onRecorderReady"
  @recordstart="onRecordStart"
  @recordprogress="onRecordProgress"
  @recordfile="onRecordFile"
  @recordstop="onRecordStop"
  @framecapture="onFrameCapture"
  @error="onRecordError"
/>

Props

属性名 类型 默认值 说明
cameraPosition string front 摄像头位置,可选 front / back
resolution string 720p 分辨率,可选 720p / 1080p
mute boolean false 是否静音采集
maxDurationMs number 8000 最大录制时长,单位毫秒;传 0 或小于 0 表示不自动停止
frameCaptureEnabled boolean false 是否开启录制过程抓帧
frameCaptureIntervalMs number 1000 过程抓帧间隔,单位毫秒
frameCaptureQuality number 85 JPEG 抓帧质量,范围建议 1-100

事件

事件名 说明 常用字段
ready 相机预览就绪
recordstart 开始采集 filePath
recordprogress 录制进度更新 durationMs
recordfile 当前录制文件可用 filePathdurationMs
recordstop 录制停止 filePathdurationMs
framecapture 过程抓帧结果 okimagePathtimeMswidthheighterrCodeerrMsg
error 异常回调 errCodeerrMsg

framecapture 成功示例:

{
  "ok": true,
  "imagePath": "/path/to/face_record_frame.jpg",
  "timeMs": 3001,
  "width": 720,
  "height": 720
}

方法

方法名 参数 说明
startPreview() 开始预览
stopPreview() 停止预览
startRecord() 开始采集
stopRecord() 停止采集
switchCamera(position) front / back 切换前后摄像头
getCurrentFilePath() 获取当前或最近一次录制文件路径
capturePreviewFrame() 立即抓取当前预览帧

模板页说明

模板页保留了这些更贴近业务的演示逻辑:

  • 自动开始采集
  • 过程帧路径打印
  • 过程帧转 base64 示例
  • 业务接口预留开关
  • 成功 / 处理中提示框

模板页里的接口开关字段:

字段名 说明
enableServerVerification 是否真的调用业务接口,默认 false
verifyApiUrl 业务验证接口地址,默认空字符串

默认情况下:

  • 模板页会继续走抓帧
  • 不会主动请求你的业务接口
  • 适合先验证原生组件、路径、抓帧和事件链路

业务接入建议

建议把下面这些放在业务层处理,而不是继续写死在插件里:

  • base64 转换
  • 人脸比对接口调用
  • 相似度阈值
  • 失败重试次数
  • 打卡成功后的页面跳转

插件层建议只负责:

  • 相机预览
  • 自动采集
  • 过程抓帧
  • 返回稳定的本地视频路径和帧图路径

隐私、权限声明

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

### iOS - `NSCameraUsageDescription` - `NSMicrophoneUsageDescription` ### Android - `android.permission.CAMERA` - `android.permission.RECORD_AUDIO`

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

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

暂无用户评论。