確認所有掃描條件均已通過
為確保測評的準確性,請務必在啟動掃描之前確保所有掃描條件均已滿足。例如,假設我們有一個「開始」按鈕,則應僅在所有掃描條件都傳回 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;
}