Listen for barcode scanner events in your Angular application
npm install angular-barcode-listener
var app = angular.module('app', ['barcodeListener']);
<barcode-listener
on-scan='ctrl.handleScan'
prefix='P%'
value-test='^C%'
finish-scan-on-match='true'
scan-duration='500'
></barcode-listener>
- prefix - expected prefix for scan inputs
- onScan - callback to call after successful scan
- scanDuration - milliseconds duration for scan to complete (defaults to 50)
- barcodeValueTest - RegExp defining valid scan value (not including prefix).
- finishScanOnMatch - if true, test scan value (not including prefix) match with barcodeValueTest on each character. If matched, immediately call the scanHandler with the value. This will generally make scans faster.
If you need to simulate scanning a barcode while developing and don't have a scanner handy you can paste the following code into a bookmark which will prompt you to enter some text that you want "scanned":
javascript:(function(){
var $document = window.angular.element(document).injector().get('$document');
var triggerKeypressEvent = function(char) {
var event = new Event('keypress');
event.which = char.charCodeAt(0);
$document.triggerHandler(event);
};
var barcode = prompt('Text to scan');
for (var i = 0; i < barcode.length; i++) {
triggerKeypressEvent(barcode[i]);
}
})();
Please follow our Code of Conduct when contributing to this project.
$ git clone https://github.com/goodeggs/angular-barcode-listener && cd angular-barcode-listener
$ yarn
$ yarn test
Module scaffold generated by generator-goodeggs-npm.