DOMException: не удалось выполнить importScripts на WorkerGlobalScope: сценарий на http://localhost:4200/BlinkCardWasmSDK.js не загрузился
Я пытаюсь заставить этот считыватель кредитных карт работать с моим угловым приложением. Я выполнил все шаги в прочтении меня и получил лицензионный ключ, но по какой-то причине я получаю следующую ошибку
Error during the initialization of the SDK! DOMException: Failed to execute 'importScripts' on 'WorkerGlobalScope': The script at 'http://localhost:4200/BlinkCardWasmSDK.js' failed to load.
в моем компоненте у меня реализован следующий метод из инструкций:
scanCard() {
if ( BlinkCardSDK.isBrowserSupported() ) {
const loadSettings = new BlinkCardSDK.WasmSDKLoadSettings( 'sRwAAAYJbG9jYA==' );
BlinkCardSDK.loadWasmModule( loadSettings ).then
(
( wasmSDK: BlinkCardSDK.WasmSDK ) => {
// The SDK was initialized successfully, save the wasmSDK for future use
BlinkCardSDK.createBlinkCardRecognizer( wasmSDK ).then(recognizer => {
BlinkCardSDK.createRecognizerRunner( wasmSDK, [ recognizer ], true ).then(recognizerRunner => {
const cameraFeed = document.getElementById( 'camera-feed' ) as HTMLVideoElement;
BlinkIDSDK.VideoRecognizer.createVideoRecognizerFromCameraStream(cameraFeed, recognizerRunner)
.then(videoRecognizer => {
videoRecognizer.recognize().then(processResult => {
if ( processResult !== BlinkIDSDK.RecognizerResultState.Empty ) {
recognizer.getResult().then(recognitionResult => {
console.log( recognitionResult );
});
} else {
console.log( 'Recognition was not successful!' );
}
console.log(processResult);
});
});
});
});
},
( error: any ) => {
// Error happened during the initialization of the SDK
console.log( 'Error during the initialization of the SDK!', error );
});
} else {
console.log( 'This browser is not supported by the SDK!' );
}
}
в html у меня есть:
<body>
<div id="screen-initial">
<h1 id="msg">Loading...</h1>
<progress id="load-progress" value="0" max="100"></progress>
</div>
<div id="screen-start" class="hidden">
<a href="#" id="start-scan">Start scan</a>
</div>
<div id="screen-scanning" class="hidden">
<video id="camera-feed" playsinline></video>
<!-- Recognition events will be drawn here. -->
<canvas id="camera-feedback"></canvas>
<p id="camera-guides">Point the camera towards Payment cards.</p>
</div>
</body>
Я добавил BlinkCardWasmSDK.js в /src/assets/BlinkCardWasmSDK.js, но он все равно выдает ошибку. Мне не хватает ссылки или чего-то такого? Заранее спасибо за помощь.
1 ответ
Проблема в том, что BlinkID не может найти требуемые ресурсы. Вам нужно указать ему, где находятся ресурсы в вашем файле конфигурации angular.json (документы конфигурации рабочей области Angular ) в архитектуре, сборке, параметрах и, наконец, в массиве ресурсов, подобном этому.
"assets": [
{
"glob": "**/*",
"input": "node_modules/@microblink/blinkid-in-browser-sdk/resources",
"output": "/"
}
]
Вам не нужно перемещать ресурсы BlinkID в ваши активы, а вместо этого указывать, где они находятся в node_modules. Сообщите мне, помогло ли это.