Skip to content

錯誤處理

在 Vitals™ 掃描過程中,onVideoFrameProcessed 回呼函數可能會拋出錯誤。總括而言,主要有以下四種錯誤類型。

錯誤錯誤
描述描述
人臉遺失在 25 秒的 Collecting Data(收集數據)階段,Vitals™ SDK 會嘗試在每一幀相機影像上偵測人臉。如果無法偵測到人臉,則會拋出錯誤。
網路 / HTTPS 請求錯誤在 Analyzing Data(分析數據)階段,Vitals™ SDK 會向 Vitals™ 雲端服務發出 HTTPS 請求。如果網路斷開連接或不穩定,請求將失敗並拋出錯誤。
無眨眼(如適用)在 25 秒的 Collecting Data(收集數據)階段,使用者應至少眨眼一次。這是為了避免有人使用照片掃描。如果在 25 秒的掃描過程中無眨眼,則會在 Analyzing Data(分析數據)階段開始時拋出錯誤。
其他Vitals™ 健康測評(又稱 VHA)過程中也可能出現其他錯誤,例如無效的使用者 ID、無效的 API 金鑰、伺服器端錯誤等。

TIP 提示

為了提供更好的用戶體驗,一旦發生錯誤,您應該顯示錯誤訊息,讓使用者知道掃描停止的原因。您也可以呼叫 stopScanning() 來確保掃描必須停止。

目標 SDK

JavaScript
React
Vue
Flutter
ReactNative
Android
iOS

TIP 提示

您可以參考 範例程式碼API 參考 以了解更多詳情。主要相關 API 包括:VideoFrameProcessedEventScanResult

您可以透過兩種方式使用 JavaScript SDK 來取得錯誤訊息,您可以選擇其中任何一種,但這兩種方式都會傳回相同的錯誤訊息。

使用 onVideoFrameProcessed

您可以透過 onVideoFrameProcessed 回呼函數觀察 JavaScript SDK 中的任何錯誤。

使用回呼函數中的 event.healthResult?.error 屬性,並在發生錯誤時以您需要的任何格式在產品中顯示錯誤。

typescript
/* 更新 onload 事件處理函數 */
window.onload = () => {
     /* 在「設定相機」指南中所建立的相機引用 */
    const cam = createVitalSignCamera({ isActive: true, config, userInfo })

    // ...

    /* 更新 onVideoFrameProcessed 回呼函數 */
    cam.onVideoFrameProcessed = (event : VideoFrameProcessedEvent) => {
        // ...

        /* 新增此程式碼以列印錯誤(如有) */
        if (event.healthResult?.error) {
            console.log(event.healthResult?.error);
        }
    }
}
js
/* 更新 onload 事件處理函數 */
window.onload = () => {
     /* 在「設定相機」指南中所建立的相機引用 */
    const cam = createVitalSignCamera({ isActive: true, config, userInfo })

    // ...

    /* 更新 onVideoFrameProcessed 回呼函數 */
    cam.onVideoFrameProcessed = (event) => {
        // ...
        
        /* 新增此程式碼以列印錯誤(如有) */
        if (event.healthResult?.error) {
            console.log(event.healthResult?.error);
        }
    }
}

使用 onError

您可以在 Vital Sign Camera 元件中註冊一個 onError 處理函數,例如:

typescript
/* 更新 onload 事件處理函數 */
window.onload = () => {
     /* 在「設定相機」指南中所建立的相機引用 */
    const cam = createVitalSignCamera({ isActive: true, config, userInfo })

    // ...

    /* 為 Vital Sign Camera 新增 onError 處理函數 */
    cam.onError = (err) => {
        /* 新增此程式碼以列印錯誤(如有) */
        if (err) {
            console.log(err);
        }
    }
}
js
/* 更新 onload 事件處理函數 */
window.onload = () => {
     /* 在「設定相機」指南中所建立的相機引用 */
    const cam = createVitalSignCamera({ isActive: true, config, userInfo })

    // ...

    /* 為 Vital Sign Camera 新增 onError 處理函數 */
    cam.onError = (err) => {
        /* 新增此程式碼以列印錯誤(如有) */
        if (err) {
            console.log(err);
        }
    }
}