Toimiiko skannaus varastossa ilman verkkoa? Selainsovelluksen rehelliset rajat (2026)

Julkaistu 2026-08-24 · Koodisto Digital

Selaimessa toimiva skannaus voi luvata tämän: skannaukset tallentuvat puhelimeen ja lähtevät automaattisesti heti kun sovellus on auki ja verkko toimii. Se ei voi rehellisesti luvata taustasynkronointia, koska iOS Safarissa ei ole Background Sync -rajapintaa, eikä selainpohjaista viivakoodintunnistusta, koska BarcodeDetector on iOS Safarissa oletuksena pois käytöstä. Lisäksi kotinäytölle asennus on ehto eikä mukavuus: asentamattomassa selaimessa WebKit voi tyhjentää paikallisen tallennustilan seitsemän käyttämättömän päivän jälkeen, jolloin lähettämätön jono katoaisi.

Miksi iPhone määrää lupauksen rajat?

Koska puhelin on ainoa laite joka on aina mukana keikalla ja varastossa, ja iPhonessa selainmoottori on käytännössä aina WebKit. Kolme WebKitin ominaisuutta rajaa sen, mitä selainsovellus voi rehellisesti luvata, ja kaikki kolme on luettavissa selainmoottorien dokumentaatiosta ja selaintuen seurantapalveluista.

RajoiteTila iOS SafarissaSeuraus
BarcodeDetector (natiivi viivakoodintunnistus)oletuksena pois käytöstätunnistus tehdään WebAssembly-kirjastolla (esim. zxing-wasm), joka toimii kaikissa selaimissa
Background Sync (taustasynkronointi)ei tuettu lainkaanjono purkautuu vain kun sovellus on auki; puhelin taskussa ei synkronoi
Script-tallennustilan 7 päivän raja (ITP)voimassa selainkäytössä, ei asennetussa sovelluksessakotinäytölle asennus on käyttöönoton ehto, ei suositus

Miten offline-jono sitten toimii?

Skannaustapahtumat kirjoitetaan puhelimen paikalliseen tietokantaan (IndexedDB) ja lähetetään palvelimelle heti kun verkko on käytettävissä ja sovellus on auki. Yksi tekstimuotoinen tapahtuma on muutamia satoja tavuja, joten tuhansienkin tapahtumien jono on korkeintaan megatavuja, eikä tallennustila ole este.

Jokaisella tapahtumalla on laitteella annettu yksilöivä tunniste, joten sama skannaus ei kirjaudu kahdesti vaikka lähetys katkeaisi kesken ja toistuisi. Kahden laitteen ristiriitaiset kirjaukset (toinen merkitsee ehjäksi, toinen vaurioituneeksi) ovat eri asia: ne eivät ole duplikaatteja, vaan ne kuuluvat katselmoitavaksi, ei viimeisin voittaa -säännöllä pääteltäviksi.

Miksi kotinäytölle asennus on pakollinen osa käyttöönottoa?

WebKitin oma dokumentaatio sanoo sen suoraan: selainkäytössä kaikki skriptin kirjoittama tallennustila voidaan poistaa seitsemän päivän käyttämättömyyden jälkeen, mutta kotinäytölle asennettu sovellus on vapautettu tästä rajasta. Vuokraamon arjessa seitsemän päivän tauko on täysin normaali (hiljainen viikko, jolloin puhelinta käytetään mutta sovellusta ei), joten asentamaton selain voisi tyhjentää lähettämättömän jonon.

Siksi KEIKKAKALUSTOssa asennus on osa käyttöönottoa eikä pelkkä ohje, ja sovellus suunnitellaan tarkistamaan asennuksen tila ajonaikaisesti. Raja itsessään ei ole KEIKKAKALUSTOn erikoisuus vaan WebKitin sääntö, joka koskee jokaista selainsovellusta.

Mitä sanamuotoa kannattaa vaatia toimittajalta?

Jos harkitset mitä tahansa selainpohjaista skannausta, pyydä lupaus kirjallisena ja tarkasti. Rehellinen muoto kuuluu: skannaukset tallentuvat puhelimeen ja lähtevät automaattisesti heti kun sovellus on auki ja verkko toimii. Jos toimittaja lupaa synkronoinnin taustalla tai vaikka puhelin on repussa, pyydä näyttämään millä rajapinnalla se iPhonessa tapahtuu, koska Background Sync -rajapintaa iOS Safarissa ei ole.

Usein kysyttyä

Toimiiko puhelimen kamera viivakoodinlukijana selaimessa?
Toimii, myös iPhonessa. Tunnistus tehdään WebAssembly-kirjastolla, koska selaimen oma BarcodeDetector on iOS Safarissa oletuksena pois käytöstä. Kalustotarrojen kannalta olennaista on että kirjasto lukee myös 1D-koodit (Code128, EAN), ei vain QR:ää.
Katoavatko skannaukset jos verkko katkeaa kesken?
Eivät: tapahtumat ovat puhelimen paikallisessa tietokannassa ja lähtevät kun verkko palaa ja sovellus on auki. Kotinäytölle asennetussa sovelluksessa jono ei ole myöskään selaimen seitsemän päivän tyhjennysrajan piirissä.
Voiko sama skannaus kirjautua kahdesti?
Ei, jos toteutuksessa on laitteella annettu yksilöivä tapahtumatunniste: palvelin tunnistaa toiston ja tallentaa tapahtuman kerran. Kahden eri laitteen ristiriitaiset kirjaukset ovat eri ongelma, ja ne kuuluvat katselmointiin.
Miksi selainsovellus eikä natiivisovellus?
Koska selainsovellus kattaa samalla toteutuksella puhelimen, työpöydän ja näppäimistöemulaatioskannerit, eikä julkaisu ole sovelluskaupan varassa. Selainskannaus on samalla toimialalla kaupallisesti todistettu ratkaisu (esimerkiksi HireHop toimii selaimessa myös puhelimen kameralla). Rajoitteet on silti sanottava ääneen, ja ne ovat tämän artikkelin aihe.

Lähteet

Selainmoottorien tila on tarkistettu lähteistä 21.8.2026 ja voi muuttua selainversioiden myötä. Artikkeli ei väitä mitään yksittäisen kilpailevan tuotteen toteutuksesta.