Estoy tratando de implementar la biblioteca de escáner de código de barras ZXing dentro de mi proyecto UI5. Para esto estoy siguiendo el siguiente tutorial: https://blogs.sap.com/2021/02/01/native-js-zxing-scanner-in-sapui5/ .
Hasta ahora funciona bastante bien. Ahora descubrí que la biblioteca externa no se carga en la primera apertura de la aplicación. Entonces, si abro la biblioteca UI5 en modo de incógnito, la biblioteca no está cargada y aparece el siguiente error:
No se puede encontrar la variable: ZXing
Después de una recarga de página adicional, la biblioteca se carga correctamente y funciona.
La sección de recursos dentro de mi mainfest.json :
"resources": { "css": [ { "uri": "css/style.css" } ], "js": [ { "uri": "libs/zxing.min.js" } ] } Luego estoy usando ZXing dentro del control personalizado en "webapp/controls/BarcodeScanner" (como se indica en el tutorial) y he anotado el archivo con /* global ZXing:true */ .
Luego, dentro de Master.controller.js#init , inicializo el escáner:
this.oScanner = new BarcodeScanner({ valueScanned: [this.onScanned, this], decoderKey: 'text', });Estoy completamente perdido. ¿Por qué la biblioteca no se carga en la vista de la primera página? Pero desde la primera actualización de la biblioteca funciona sin problemas. Es solo la primera carga. Ese es un problema tan tonto y no puedo encontrar la solución.
La sección manifest.json /sap.ui5/resources/ js está obsoleta desde UI5 1.94 .
En su lugar, eche un vistazo a las soluciones existentes:
sap.ndc.BarcodeScanner(Button) que admite aplicaciones web SAPUI5 puras (no híbridas) a diferencia de las versiones anteriores.* Ejemplo: https://ui5.sap.com /#/entity/sap.ndc.BarcodeScannerButton/sample/sap.ndc.sample.BarcodeScannerButtonsap/ui/webc/fiori/BarcodeScannerDialog del componente web (experimental). Ambos controles UI5 estándar sap/ndc/BarcodeScanner y sap/ui/webc/fiori/BarcodeScannerDialog implementan ZXing internamente.
* Ver Nota 2992772 .
** Solicitud de implementación de la API de detección de formas en WebKit: https://bugs.webkit.org/show_bug.cgi?id=198174