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.