更新记录
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()