更新记录
1.0.1(2022-09-18)
修复iOS上传ipa时bundle文件校验出错的问题。
1.0.0(2022-09-05)
完成基本功能,满足日常业务所需,详见使用说明。
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:5.0 - 12.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 | 适用版本区间:9 - 16 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
使用说明
1. 准备工作
了解百度人脸离线采集SDK,申请百度人脸离线采集SDK license,参考百度官方文档
2. 接入PT-BaiduFacePlugin插件
试用或购买插件,云插件使用官方参考文档
Android
将从百度控制台获取到的“idl-license.face-android”文件件放到uni工程的nativeplugins/PT-BaiduFacePlugin/android/assets/目录下(需自行按该路径创建文件夹)
iOS
将从百度控制台获取到的“idl-license.face-ios”文件放到uni工程的nativeplugins/PT-BaiduFacePlugin/ios/目录下(需自行按该路径创建文件夹)
3. 使用插件
3.1 初始化,人脸采集配置,活体检测配置
一般在App.vue的onLaunch方法中调用,示例中人脸采集和活体检测所展示配置参数均为默认值,无特殊需求可以不传参数
// 引用插件
const PTFace = uni.requireNativePlugin('PT-BaiduFacePlugin')
// 初始化,参数必传
PTFace.authorizeFaceSDK({
iosFaceLicenseName: "idl-license.face-ios", // 必传
iosFaceLicenseId: "xxx-face-ios", // 必传
androidFaceLicenseName: "idl-license.face-android", // 必传
androidFaceLicenseId: "xxx-face-android" // 必传
}, res => {
// 初始化鉴权成功
if (res == "success") {
// 配置人脸检测,如无特殊需求,参数可不传,使用默认配置,示例:PTFace.setFaceSDKConfig()
PTFace.setFaceSDKConfig({
// 设置最小检测人脸阈值
minFaceSize: 200,
// 设置截取人脸图片宽
cropFaceSizeWidth: 400,
// 设置截取人脸图片高
cropFaceSizeHeight: 640,
// 设置人脸遮挡阀值
occluThreshold: 0.5,
// 设置亮度阀值
minIllumThreshold: 40,
maxIllumThreshold: 240,
// 设置图像模糊阀值
blurThreshold: 0.3,
// 设置头部姿态角度
eulurAngleThrPitch: 10,
eulurAngleYaw: 10,
eulurAngleRoll: 10,
// 设置人脸检测精度阀值
notFaceThreshold: 0.6,
// 设置抠图的缩放倍数
cropEnlargeRatio: 2.5,
// 设置照片采集张数
maxCropImageNum: 3,
// 设置超时时间
conditionTimeout: 15,
// 设置原始图缩放比例
imageWithScale: 0.8,
// 设置图片加密类型,type=0 基于base64 加密;type=1 基于百度安全算法加密
imageEncrypteType: 0,
// 设置人脸过远框比例
minRect: 0.4,
// 设置是否开启语音提示
isOpenSound: true
})
// 配置活体检测,如无特殊需求,参数可不传,使用默认配置,示例:PTFace.setFaceLivenessConfig()
PTFace.setFaceLivenessConfig({
// 活体动作列表,Eye: 眨眼 Mouth:张嘴 YawRight: 向右转头 YawLeft: 向左转头 PitchUp: 抬头 PitchDown: 低头
livenessList: ["Eye", "Mouth", "YawRight"],
// 是否按顺序进行活体动作
isByOrder: false
})
} else {
// res == "failure"
// 初始化鉴权失败,排查接入是否正确
}
})
3.2 人脸采集
// 安卓需先申请相机权限
let that = this
// 获取插件类
const PTFace = uni.requireNativePlugin('PT-BaiduFacePlugin')
// 调用人脸采集
PTFace.faceDetection((res) => {
// res即为采集的图片转base64字符串后的结果,请勿使用console.log(res)查看, 会导致控制台无限输出文本
uni.showToast({
title: res,
icon: 'none'
})
})
3.3 人脸采集+活体检测
// 安卓需先申请相机权限
let that = this
// 获取插件类
const PTFace = uni.requireNativePlugin('PT-BaiduFacePlugin')
// 调用人脸采集+活体检测
PTFace.faceLiveness((res) => {
// res即为采集的图片转base64字符串后的结果,请勿使用console.log(res)查看, 会导致控制台无限输出文本
uni.showToast({
title: res,
icon: 'none'
})
})
4. 注意事项
4.1 安卓调用采集接口前需先申请相机权限,推荐参考 App权限判断和提示
4.2 iOS常见问题
iOS的文件路径层级和安卓不一样,少一层assets,创建文件夹时需注意;
iOS验证失败时请检查百度后台iOS配置是否正确,iOS开发证书和描述文件等是否过期。