Oregon 2025. október 14.

Zebra TC22 Adatgyűjtő és saját app szükségessége

Mint korábban írtam róla, a gyári böngészők nem tudnak kinyúlni a HW-hez, ennek áthidalására megoldás az Enterprise Browser használata. Ez a hiányosság a trigger kezelését korlátozza. Egyik barátom hívta fel a figyelmemet a Data Storage gyári app-ra, amiben beállítható, hogy melyik app-nak továbbítsa a vonalkódolvasó a beolvasott karaktersorozatot. Ő készített egy Androidos appot Kotlinban a komisszióhoz. Én kicsit tovább gondoltam. Mégpedig, ha ez a DataStorage képes Android Itent-et elkapni és irányítani a saját appomhoz, akkor a saját appomban talán elég egy WebView aminek ezt átadom. Így is lett.

Az egyik reggel kitaláltam, hogy 15 év kihagyott Android kódolás után megcsinálom ezt az Android app-ot. Kis olvasás és AndroidStudio feltelepítését követően körülbelül két óra múlva már kész is volt az alkalmazás. Az alkalmazásom lényegében egy WebView, és egy feliratkozás az Itentre. A WebView-n belül az oldalon, ha talál egy bizonyos szignatúrájú /például onEanScanned(ean) nevű JS függvényt/, akkor annak átadja a beolvasott tartalmat, ami esetemben egy EAN13.

Ide vonatkozó java kód:

private void realEval(String data) {
    String js = "window.onEanScanned && window.onEanScanned(" + org.json.JSONObject.quote(data) + ");";
    webView.evaluateJavascript(js, null);
}

Ez a kód meghívást követően a webView-ban lefuttatja a weboldalon szereplő onEanScanned(ean) kódot.

Összefoglaló

Azt hiszem remek módot találtam arra, hogy kikerülhető legyen az Enterprise Browser megvásárlása minden készülékre. Továbbá a módszer arra is megoldás, hogy ne kelljen több stackben fejleszteni a rendszert és ezáltal megnövelni az üzemeltetési költségeket.