确认所有扫描条件均已通过
为确保测评的准确性,请务必在启动扫描之前确保所有扫描条件均已满足。例如,假设我们有一个「开始」按钮,则应仅在所有扫描条件都传回 true(即所有条件均已通过)时启用该按钮。
目标 SDK
JavaScript
React
Vue
Flutter
ReactNative
Android
iOS
TIP 提示
您可以参考 示例程式码 和 API 参考 以了解更多详情。最相关的 API 包括:VideoFrameProcessedEvent 和 ScanConditions。
首先,在 HTML 档案中新增一个「开始扫描」按钮,并将其预设为停用:
html
<!-- 开始按钮 -->
<button id="startButton" disabled>开始扫描</button>根据条件检查结果启用或停用开始按钮:
typescript
/* 更新 onload 事件处理函数 */
window.onload = () => {
/* 在「设定相机」步骤中建立的相机的引用。 */
const cam = createVitalSignCamera({ isActive: true, config, userInfo })
/* 取得「开始」按钮 HTML 元素的引用 */
const startButton = document.querySelector('#startButton')!;
// ...
/* 更新 onVideoFrameProcessed 回呼函数 */
cam.onVideoFrameProcessed = (event: VideoFrameProcessedEvent) => {
// ...
/* 条件检查结果的引用,您应该已经拥有该引用,以便在 UI 上可视化结果 */
const conditions = event.scanConditions;
/* 如果所有条件都满足,则启用「开始」按钮,否则停用它 */
const allConditionsPassed = allConditionsCheckPassed(conditions);
allConditionsPassed ? startButton.removeAttribute('disabled') : startButton.setAttribute('disabled', '');
}
}
function allConditionsCheckPassed(conditions: ScanConditions | undefined) {
if (conditions === undefined)
return false;
if (!conditions.centered)
return false;
if (!conditions.distance)
return false;
if (!conditions.lighting)
return false;
if (!conditions.movement)
return false;
if (!conditions.frameRate)
return false;
if (!conditions.serverReady)
return false;
return true;
}js
/* 更新 onload 事件处理函数 */
window.onload = () => {
/* 在「设定相机」步骤中建立的相机的引用。 */
const cam = createVitalSignCamera({ isActive: true, config, userInfo })
/* 取得「开始」按钮 HTML 元素的引用 */
const startButton = document.querySelector('#startButton');
// ...
/* 更新 onVideoFrameProcessed 回呼函数 */
cam.onVideoFrameProcessed = (event) => {
// ...
/* 条件检查结果的引用,您应该已经拥有该引用,以便在 UI 上可视化结果 */
const conditions = event.scanConditions;
/* 如果所有条件都满足,则启用「开始」按钮,否则停用它 */
const allConditionsPassed = allConditionsCheckPassed(conditions);
allConditionsPassed ? startButton.removeAttribute('disabled') : startButton.setAttribute('disabled', '');
}
}
function allConditionsCheckPassed(conditions) {
if (conditions === undefined)
return false;
if (!conditions.centered)
return false;
if (!conditions.distance)
return false;
if (!conditions.lighting)
return false;
if (!conditions.movement)
return false;
if (!conditions.frameRate)
return false;
if (!conditions.serverReady)
return false;
return true;
}