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);
        }
    }
}