Initialisieren

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

				
					  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'
}
				
			

initCaptureID

				
					  initCIDScannerLib(): Promise<void>;

				
			

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;
//    }
  }
}

				
			

Was this article helpful?