a service to get the string from a scanner device like Honeywell HH450
$ npm install @byzan-libs/honey-scanner@latest
@Component({
selector: 'app-main',
templateUrl: './main.component.html',
styleUrls: ['./main.component.scss'],
})
export class MainComponent implements OnDestroy {
private scannerSubscription?: Subscription;
public constructor(
// provided in a *tank* module
private scanner: HoneyScannerService,
) {
// adjust the threshold of milliseconds for different sanner devices default is 90
let threshold:number = 90;
this.scannerSubscription = this.scanner.onScan(threshold).subscribe({
next: e => {
// scan result here
console.log(e);
},
});
}
// for plain angular web project
public ngOnDestroy(): void {
if (this.scannerSubscription) {
this.scanner.dispose();
this.scannerSubscription.unsubscribe();
}
}
// for ionic project
public ionViewWillLeave(): void {
if (this.scannerSubscription) {
this.scanner.dispose();
this.scannerSubscription.unsubscribe();
}
}
}
- the service will not working if a component is navigated by a
a[routerLink]
since the enter key from the scanner is missing after aa[routerLink]
navigation so try to use adiv[routerLink]
instead - it is recommended to provide the service in a component instead of a module
- do not forget to
unsubscribe
anddispose