It seems there is integrated barcode scanning but it doesn’t appear to work for me. What are other’s experience? @bkm@Wasif_Khalil
The built-in JS camera-based scanning either uses quaggajs or cordova (now unmaintained). On my Mac’s webcam it doesn’t detect anything. The dialog says “Scan QRCode” but cordova appears to support lots of barcode types, and quagga is set to “code_128_reader” only in code.
From reading other posts it seems you can also use hardware barcode scanners where the cursor is placed in the field, barcode scanned, the data is entered as text then there is code to look up the item and populate other fields. Is this still the case and does it work on the POS screens?
I have been using a Mindeo 2D scanner on V13. No problems so far. It cost a bit but I think it was worth the investment.
I started looking at phone-scanner-apps just the other day but have not had any luck with that.
From what I can see, the problem is that many of these apps don’t actually mimic a keyboard.
Instead they just print the scanned code to screen. I have an application for the use of
the browser to access ERPNext and to scan items. I am now considering a bluetooth
scanner that can link to the phone.
Yeah… I have several Zebra Symbol scanners bluetooth linked to broadband cellular iPads to do remote POS sales. Their performance has improved over the past year since Apple started doing some updates to the iOS.
It looks like this is what I’ve been looking at already since it went into v13.9. The PR doesn’t state what the default supported barcode types are.
From looking at the new library it seems the default is QRCode only, even though the library can scan many different types of barcode. More disappointingly, the feature does not appear to allow the ability to customise the supported barcode types.
It would have been really handy to have a setting defining the default barcode types, and then have the ability to override it in the field options per field.
Barcodes are far more prevalent in businesses than QR Codes.
It looks like the new JS QRCode library supports all different barcode types on all different mobile devices and browsers without any separate app using the device camera. Unfortunately, you can’t configure it without digging into code.
The scanner widget works for many barcode formats, not just qrcodes. On my testing, the performance is surprisingly decent. There’s a long way to go before javascript can replace a proper hardware scanner, but for occasional use this is pretty slick.
It’s the same code for all versions post merge. I’ve tried it out on both the v13.29 release and the current v14 beta. Both scanned regular barcodes correctly and identically.
For Android the best one I’ve seen is Niko Barcode & QR code Keyboard. The paid app has good features and was very modestly priced from memory. Unfortunately it’s only available for Android.
For iOS I’m yet to find one that has good usability. Scandit Keyboard Wedge (for iOS) has come closest so far but their licensing scheme doesn’t look cost-effective for small-scale deployments. And the Android demo version that I’ve tried lacks the usability of the iOS version.
Of course all of these scanner keyboard apps have the caveat that if they are left as the active keyboard - which is likely the most convenient way to use them - that they then present the potential for leaking all typed content.
When I tried it on my iMac I got it to recognise a 40x10mm printed CODE_128 barcode but only after I put a magnifying glass in front of the camera lens.
On an iPad and a Galaxy Tab A7 Lite it worked similarly to a number of the free “Keyboard Wedge” scanner apps - it scans the first barcode that it successfully identifies. It can be a bit of a problem when you’re in an environment where multiple barcodes can end up in view of the camera at the same time, so an option to only scan when the user presses a button etc would be a good option.
I also had to learn that the library has browser/OS limitations on getting access to the camera. My first attempts were with a system using a http: URL but then I read that the camera is accessible on http: only for localhost, otherwise needs to be https:, and also that there are browser (minimum) version requirements for some platforms. Took me a while to work out because I started with an iPad and the “Scanning barcode” message dialog disappeared so quickly it was impossible to see, so an error dialog if camera access is blocked would be a good option there.