更新记录

1.0.0(2024-12-10)

  • 新建活体检测uts插件

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.91,Android:5.0,iOS:支持,HarmonyNext:不确定 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序 鸿蒙元服务
× × × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

活体检测

网易易盾 提供完善的生物核验服务,利用生物信息进行活体检测、人脸比对等技术,全面、快速地核验用户身份的真实性

了解更多产品信息或体验试用,请访问 生物核验产品页

平台支持(兼容性)

Android iOS
适用版本区间:5.0及以上 适用版本区间:9以上

资源引入/集成

从 dcloud 插件市场下载对应插件 yidun-alive。导入插件之后一定要自定义基座方可生效,自定义基座说明请参考 https://ask.dcloud.net.cn/article/35115

项目开发配置

Android 配置

插件依赖于相机权限,6.0 及以上需要动态申请

requestPermission() {
  plus.android.requestPermissions(["android.permission.CAMERA"],
      function(result) {

      },
      function(error) {

      }
  )
}

调用示例

<template>
    <view>
        <yidun-alive ref="aliveDetect" class="check-preview__camera" @initAliveDetect="initAliveDetect" @eventCheckBack="handleCheck"/>
    </view>
</template>

<script>
    import {
        ResponseCallback,
        Response
    } from "@/uni_modules/yidun-alive";
    export default {
        onReady() {
        this.initAliveDetect();
    }
    methods: {
      initAliveDetect() {
        this.$refs.aliveDetect.initDetect({
          'businessID': '从易盾获取业务id',
          'timeout': 30,
          'isDebug': true
        })
      this.$refs.aliveDetect.startDetect()
    },
    handleCheck(ev) {
        const detail = ev['detail']
        const method = detail['method']
        const data = detail['data']
    }
  }
</script>

更多使用场景请参考

SDK 方法说明

在 nvue 中引入组件

  <yidun-alive
        style="width: 504rpx; height: 672rpx;"
        ref="aliveDetect"
        @initAliveDetect="initAliveDetect" 
        @eventCheckBack="handleCheck"
        ></yidun-alive>

注意: 请根据自己需求设置 yidun-alive 大小及布局等

回调说明

  • @initAliveDetect 是自定义组件布局完成锚点,注册该事件可以在自定义组件布局完成收到回调
  • @eventCheckBack 是活体检测过程中事件回调,具体取值参考如下
handleCheck(ev) {
        const detail = ev['detail']
        const method = detail['method']
        const data = detail['data']
        if (method == "onReady") {
            // 引擎准备完成
        }else if (method == "onConfig") {
            // 活体待检测动作下发完成
        }else if (method == "onChecking") {
            // 单个检测动作
        }else if (method == "onChecked") {
            // 本地检测完成
        }else if (method == "onError") {
            // 检测异常
        }else if (method == "overTime") {
            // 超时
        }
}

data 具体可取值看下表

method值 所处阶段 data中的字段说明
onReady 初始化引擎 initResult:引擎初始化结果 true表现引擎初始化成功、false表示失败
onConfig 待检测所有动作 actions:动作编号
onChecking 检测中 currentStep:当前检测动作 0:正视前方 1:向右转头 2:向左转头 3:张嘴动作 4:眨眼动作 message:动作描述信息
onChecked 检测完成 isPassed:是否通过 token:校验码,用于服务端二次校验
onError 发生异常 code:错误码
message:
iOS对应的错误信息:
活体检测获取配置失败
保持面部在框内
环境光线过暗
环境光线过亮
请勿抖动手机
活体检测获取配置信息超时
云端检测结果请求超时
云端检测上传图片失败
网络未连接
SDK内部错误
App未获取相机权限
未知错误
Android对应的错误信息:
业务id不能为空
返回值Json解析异常
AES解密异常
打开相机失败
请移动人脸到摄像头视野中间
图像质量模糊
环境光线过亮
环境光线暗
请正视摄像头视野中间并保持不动
手机抖动,请保持稳定
overTime 超时,超过设置的限制时间

1 初始化

初始化活体检测(方法功能描述)

代码说明:

this.$refs.aliveDetect.initDetect({options})

参数说明:

  • options 基础参数:

    参数 类型 是否必填 默认值 描述
    businessID String 从易盾获取的业务id
    timeout Number 30秒 活体检测超时时间,单位s
    isDebug Boolean 是否开启debug模式

2 开始活体检测验证

代码说明:

this.$refs.aliveDetect.startDetect()

3 停止活体检测

代码说明:

this.$refs.aliveDetect.stopDetect()

隐私、权限声明

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

相机权限

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

插件不采集任何数据

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

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问