Die Initialisierung der Library muß nach Programmstart, vor dem ersten Aufruf weiterer Methoden aus der Library, durchgeführt werden.
Die Initialisierung umfasst den Aufruf der folgenden Methoden:
- addListener – Registrierung der benötigten Listener zur Behandlung der Rückgabewerte.
- initCIDScannerLib – die eigentliche Iniitalisierungsroutine zurErstellung benötigter Strukturen im nativen Bereich der Library.
- activateLicense – Aktivieren der Lizenz.
- setConfiguration – Übergabe eigener Einstellungen oder aktivieren einer Standardkonfiguration.
addListener(eventName: string, listenerFunc: (data: CIDScanEvent) => void): PluginListenerHandle;
Fügt eine Behandlungsroutine für ein bestimmtes Ereignis hinzu.
Parameter:
- eventName = Zeichenfolge mit dem eindeutigen Namen des Ereignis.
- listenerFunc = Methode zur Bearbeitung des Ereignis. Es wird eine Datenstruktur vom Typ CIDScanEvent übergeben.
Rückgabewert:
Ein Handle für diesen Ereignis Listener. Kann z.B. zur Freigabe der Behandlungsroutine verwendet werden.
mögliche Werte für eventName sind in der Aufzählung CIDScanListenerTypes aufgeführt:
enum CIDScanListenerTypes {
LICENSE = 'licenseEvent',
DECODE = 'decodeEvent',
STATUS = 'statusEvent',
SETTING = 'settingEvent'
}
initCIDScannerLib(): Promise;
Initialisierungs der Library.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.
import { Injectable, NgZone } from '@angular/core';
import { Aim, AimStyle, CIDScan, CIDScanEvent, CIDScanListenerTypes, Color, ScannerActionType, ScannerConfig } from '@captureid/capacitor-cidscan';
import { PluginListenerHandle } from '@capacitor/core';
@Injectable({
providedIn: 'root'
})
export class CidService {
public mKey = 'your license key here';
public mCustomerID = 'your customerid here';
private licenseActive = false;
private initialized = false;
private statuslistener: PluginListenerHandle;
private licenselistener: PluginListenerHandle;
private decodelistener: PluginListenerHandle;
constructor(private zone: NgZone) { }
public async initCID() {
if(!this.initialized) {
this.decodelistener = CIDScan.addListener(CIDScanListenerTypes.DECODE, (event: CIDScanEvent) => {
this.handleDecode(event);
});
this.licenselistener = CIDScan.addListener(CIDScanListenerTypes.LICENSE, (event: CIDScanEvent) => {
this.handleLicensing(event);
});
this.statuslistener = CIDScan.addListener(CIDScanListenerTypes.STATUS, (event: CIDScanEvent) => {
this.handleStatus(event);
});
}
await CIDScan.initCIDScannerLib();
}
public async activate() {
await CIDScan.activateLicense({ productkey: this.mKey, customer: this.mCustomerID });
}
public configureScanner() {
const config = new ScannerConfig();
config.result.vibrate = true;
config.scenario.aim = new Aim(AimStyle.CORNERS, new Color(0, 255, 0, 1), true);
CIDScan.setConfiguration({ config });
}
public async startScanner() {
if (this.licenseActive) {
CIDScan.enableAllSymbologies({ enable: true });
CIDScan.startScanner();
} else {
this.toastShow('nolicense');
}
}
private handleStatus(event: CIDScanEvent) {
switch(event.action) {
case ScannerActionType.SCANNER_INITIALIZED:
this.initialized = true;
this.activate();
break;
}
}
private handleDecode(event: CIDScanEvent) {
}
private handleLicensing(event: CIDScanEvent) {
// if(event.result[0].message === 'License_Valid') {
this.licenseActive = true;
// }
}
}