JavaScript API
Um von Webseiten oder Fiori-Apps auf geräte- oder browserspezifische Funktionen zuzugreifen bietet TheFlex eine JavaScript API an. Diese kann genutzt werden, um zusätzliche Funktionen zu implementieren, wie zum Beispiel:
- Sicheres Speichern und Laden von Offline-Daten. Dies kann genutzt werden um sicher und persistent Offline-Daten zwischenzuspeichern, bei denen sichergestellt ist, dass diese nicht automatisch vom Browser gelöscht werden können.
- Zugriff auf Handrückenscanner, wie das Empfangen von gescannten Daten, das Anzeigen von Informationen auf dem Display des Scanners oder das Auslösen von Aktionen wie das Blinken der LEDs.
- Nutzen von Hardware auf dem Gerät, wie beispielsweise Bluetooth, NFC oder GPS.
Steuerung der Tastatur
Die Tastatur kann über die zwei folgenden Befehle gesteuert werden:
Keyboard.hide();
Keyboard.show();
Diese Steuerung wird über das Cordova Keyboard Plugin ermöglicht. Dieses muss jedoch nicht eingebunden werden, da der TheFlex dieses Plugin automatisch jeder geöffneten Website zur Verfügung stellt.
Startseiten-Daten, anlegen & auslesen
Beim Anlegen jedr Startseite gibt es die Möglichkeit, einen Benutzernamen und ein Passwort anzulegen. Diese Anmeldedaten dienen zur Vorbelegung in Fiori-Apps.
Es kann jedoch vorkommen, dass die automatisierte Vorbelegung auf dem angegebenen Launchpad nicht funktioniert. In solchen Fällen kann ein Browser-Script geschrieben werden, das die Anmeldung automatisiert. Dank unserer Browser-API können Sie einfach auf die Launchpad-Daten zugreifen:
FlxMultiUrls.currentLaunchpadData;
Damit erhalten Sie alle Daten zum entsprechenden Launchpad.
Möchten Sie in Ihrem Script auf bestimmte Daten eines Launchpads zugreifen, hängen Sie einfach den Namen der Variable an:
FlxMultiUrls.currentLaunchpadData.Name;
FlxMultiUrls.currentLaunchpadData.URL;
FlxMultiUrls.currentLaunchpadData.Username;
FlxMultiUrls.currentLaunchpadData.Password;
Jede Webseite kann diese Daten auslesen. Geben Sie Benutzername und Passwort nur ein, wenn Sie ausschließlich interne Webseiten und Apps öffnen möchten, über die Sie die volle Kontrolle haben.
DataWedge JavaScript API (Zebra-Geräte)
TheFlex bietet eine erweiterte JavaScript-API zur Integration und Steuerung von Barcode-Scans auf Zebra-Geräten mit DataWedge im Intent-Modus. Damit kannst du den Scanvorgang steuern, Profile verwalten und Scan-Ergebnisse direkt in deiner Webanwendung verarbeiten.
DataWedge Intent-Konfiguration (für Zebra-Geräte)
Um die API zu nutzen, konfiguriere DataWedge für intent-basiertes Scannen:
- DataWedge App öffnen.
- Das gewünschte Profil auswählen.
- Tastatur-Ausgabe deaktivieren.
- Intent-Ausgabe aktivieren.
- Action:
zebra.scan - Intent-Übertragung: "Intent senden" auswählen
- Action:
Nach dieser Konfiguration werden gescannte Daten per Intent direkt in die Webanwendung übertragen.
Hauptfunktionen der API
-
createProfile(profileName, success, error):
Erstellt ein neues DataWedge-Profil mit dem angegebenen Namen. -
enableScanner(success, error):
Aktiviert den Scanner zum Erfassen von Daten. -
disableScanner(success, error):
Deaktiviert den Scanner. -
enableDecoders(profileName, decoders, success, error):
Aktiviert bestimmte Barcode-Decoder für das ausgewählte Profil. -
resetDecoders(profileName, success, error):
Setzt alle Decoder eines Profils zurück. -
setActiveProfile(profileName, success, error):
Setzt ein Profil als aktiv.
Scan Listener Steuerung
-
flxDatawedge.startScanListener(callback, errorCallback):
Startet einen Listener, um Scan-Ergebnisse im JavaScript zu verarbeiten. Liefertresult.data,result.decodeModeundresult.barcodeTypezurück. -
flxDatawedge.stopScanListener():
Stoppt den Listener und stellt das normale Scanverhalten wieder her.
Beispiel: Scan-Ergebnis als Alert anzeigen
flxDatawedge.startScanListener(function(result) {
alert(result.decodeMode + " " + result.barcodeType + " " + result.data);
});
Beispiel: Scan-Ergebnis zuschneiden und in Eingabefeld einfügen
document.addEventListener('deviceready', function() {
if (window.flxDatawedge && typeof flxDatawedge.startScanListener === 'function') {
flxDatawedge.startScanListener(
function(result) {
let scanData = typeof result === "object" && result.data ? result.data : '';
if (scanData) {
let cut = scanData.length > 6 ? scanData.substr(3, scanData.length - 6) : '';
var active = document.activeElement;
if (active && (active.tagName === 'INPUT' || active.tagName === 'TEXTAREA')) {
active.value = cut;
active.dispatchEvent(new Event('input'));
} else {
alert("No input field focused!");
}
}
},
function(e) {
alert("Error in DataWedge listener: " + e);
}
);
}
});
