文档捕获
捕获身份证件。SDK 提供一个取景框辅助用户定位证件;定位完成后,用户点击按钮拍照。
SDK 不对捕获内容进行任何类型的验证。
| 取景框 | 说明 |
|---|---|
DocumentCameraTypes.CPF | 捕获 CPF |
DocumentCameraTypes.CNH | 捕获展开的 CNH |
DocumentCameraTypes.CNH_FRENTE | 捕获 CNH 正面 |
DocumentCameraTypes.CNH_VERSO | 捕获 CNH 背面 |
DocumentCameraTypes.RG_FRENTE | 捕获 RG 正面 |
DocumentCameraTypes.RG_VERSO | 捕获 RG 背面 |
DocumentCameraTypes.RG_FRENTE_NOVO | 捕获新版 RG 正面 |
DocumentCameraTypes.RG_VERSO_NOVO | 捕获新版 RG 背面 |
DocumentCameraTypes.OTHERS("descrição") | 适用于任何其他证件的通用取景框 |
如果需要捕获没有专用取景框的证件(例如 RNE),请使用 DocumentCameraTypes.OTHERS("description")——这是一个通用矩形取景框,可用于引导任何捕获。
完整支持的文档类型列表,请参阅 API 参考 > 枚举。
建议在应用程序中配置取景框的尺寸,以优化捕获区域。
取景框功能可能受到含有网格组件的设计系统(Bootstrap、Material-UI 等)的影响。为降低此风险,请将取景框(id="box-camera")放置在不继承不必要 CSS 规则的位置。
- 桌面端
- 移动端
将取景框包裹在父元素中以限制其尺寸:
<div class="container">
<div id="box-camera"></div>
</div>
.container {
width: 800px;
height: 600px;
position: relative;
}
保持适当的高宽比,以便用户更容易将脸部对准取景框。
通过浏览器开发者模式调整屏幕大小进行的测试将无法正常工作。请直接调整浏览器窗口大小。
对于 Web 移动端视图,捕获取景框应占据设备屏幕的 100%(100vw/100vh),以避免计算机 视觉算法出现问题。避免水平或垂直滚动——使用模态框有助于减少此类情况。
使用浏览器开发者模式进行测试无效——浏览器使用的摄像头与桌面摄像头相同,分辨率与移动设备摄像头差异很大。请直接在设备上测试。
步骤 1 — 实现 callback 对象
Web SDK 使用 callback 对象(传递给 open())来处理成功和错误事件。两个处理程序均为必填项:
| 处理程序 | 调用时机 |
|---|---|
on.success(obj) | 捕获成功完成——接收包含 base64 和 encrypted 的对象 |
on.error(error) | 会话期间发生错误——接收 ErrorBio |
const callback = {
on: {
success: (obj) => {
console.log(obj.base64);
console.log(obj.encrypted);
},
error: (error) => {
console.error(error);
}
}
};
callback 对象是必填项。如果未正确实现(同时覆盖 success 和 error 事件),SDK 将抛出异常,若未处理该异常,将在用户的控制台中显示。
步骤 2 — 构建摄像头并准备文档会话
构建摄像头实例并调用 prepareDocumentCamera,传入 UnicoConfig 和所需的 DocumentCameraTypes:
const unicoCamera = unicoCameraBuilder.build();
const config = new UnicoConfig()
.setHostname("<YOUR_HOSTNAME>")
.setHostKey("<YOUR_HOST_KEY>");
unicoCamera.prepareDocumentCamera(
config,
DocumentCameraTypes.CNH
).then(cameraOpener => {
cameraOpener.open(callback);
}).catch(error => {
console.error(error);
});
完整的结果处理说明,请参阅接收结果。