<script async src="https://ga.jspm.io/npm:es-module-shims@1.7.3/dist/es-module-shims.js"></script>
<script type="importmap">
{
"imports": {
"scandit-web-datacapture-core": "https://cdn.jsdelivr.net/npm/scandit-web-datacapture-core@6.23.2/build/js/index.js",
"scandit-web-datacapture-barcode": "https://cdn.jsdelivr.net/npm/scandit-web-datacapture-barcode@6.23.2/build/js/index.js"
}
}
</script>
<script type="module">
import * as SDCCore from "scandit-web-datacapture-core";
import * as SDCBarcode from "scandit-web-datacapture-barcode";
// In attesa della chiave corretta
await SDCCore.configure({
licenseKey: "{{ SCANDIT_LICENSE_KEY }}",
libraryLocation: new URL("https://cdn.jsdelivr.net/npm/scandit-web-datacapture-barcode@6.23.2/build/engine/").toString(),
moduleLoaders: [SDCBarcode.barcodeCaptureLoader()]
});
const view = new SDCCore.DataCaptureView();
//view.addControl();
view.connectToElement(document.getElementById("data-capture-view"));
const context = await SDCCore.DataCaptureContext.create();
await view.setContext(context);
const settings = new SDCBarcode.BarcodeCaptureSettings();
settings.enableSymbologies([
SDCBarcode.Symbology.Code128,
SDCBarcode.Symbology.Code39,
SDCBarcode.Symbology.EAN8,
SDCBarcode.Symbology.UPCE,
SDCBarcode.Symbology.EAN13UPCA
]);
const size = new SDCCore.SizeWithUnit(
new SDCCore.NumberWithUnit(0.25, SDCCore.MeasureUnit.Fraction),
new SDCCore.NumberWithUnit(0.02, SDCCore.MeasureUnit.Fraction)
)
settings.locationSelection = SDCCore.RectangularLocationSelection.withSize(size);
view.pointOfInterest = new SDCCore.PointWithUnit(
new SDCCore.NumberWithUnit(0.5, SDCCore.MeasureUnit.Fraction),
new SDCCore.NumberWithUnit(0.5, SDCCore.MeasureUnit.Fraction)
);
view.scanAreaMargins = new SDCCore.MarginsWithUnit(
new SDCCore.NumberWithUnit(-1, SDCCore.MeasureUnit.Fraction),
new SDCCore.NumberWithUnit(-1, SDCCore.MeasureUnit.Fraction),
new SDCCore.NumberWithUnit(-1, SDCCore.MeasureUnit.Fraction),
new SDCCore.NumberWithUnit(-1, SDCCore.MeasureUnit.Fraction)
);
const barcodeCapture = await SDCBarcode.BarcodeCapture.forContext(context, settings);
const listener = {
didScan: (barcodeCapture, session) => {
const recognizedBarcodes = session.newlyRecognizedBarcodes;
{% if action == 'intervention' %}
manageBarcode(recognizedBarcodes[0]['_data']);
{% elseif action == 'download' or action == 'send' %}
checkCode(recognizedBarcodes[0]['_data']);
{% endif %}
barcodeCapture.setEnabled(false);
scanditUpdateScan(0);
}
};
barcodeCapture.addListener(listener);
const cameraSettings = SDCBarcode.BarcodeCapture.recommendedCameraSettings;
const camera = SDCCore.Camera.default;
if(camera){
await camera.applySettings(cameraSettings);
}
await context.setFrameSource(camera);
await camera.switchToDesiredState(SDCCore.FrameSourceState.On);
const overlay = await SDCBarcode.BarcodeCaptureOverlay.withBarcodeCaptureForViewWithStyle(barcodeCapture, view, SDCBarcode.BarcodeCaptureOverlayStyle.Frame);
await overlay.setShouldShowScanAreaGuides(true);
const viewfinder = new SDCCore.RectangularViewfinder(
SDCCore.RectangularViewfinderStyle.Square,
SDCCore.RectangularViewfinderLineStyle.Light
);
await overlay.setViewfinder(viewfinder);
setInterval(activeScandit, 1000);
function activeScandit(){
if(document.getElementById('scandit_reader_active').value == 0)
barcodeCapture.setEnabled(false);
else
barcodeCapture.setEnabled(true);
}
</script>
<script>
function scanditUpdateScan(val){
document.getElementById('scandit_reader_active').value = val;
var a = document.getElementById('scandit_button_scan');
var span = document.getElementById('scandit_span_status');
if(val == 1){
a.href = "javascript: scanditUpdateScan(0)";
a.className = 'button button-3d button-mini button-red m_t_none';
a.innerHTML = 'Disattiva scansione';
span.innerHTML = 'Attiva';
}
else{
a.href = "javascript: scanditUpdateScan(1)";
a.className = 'button button-3d button-mini button-green m_t_none';
a.innerHTML = 'Attiva scansione';
span.innerHTML = 'Disattiva';
}
}
</script>