Poslední modifikace: 2023-12-07 18:05:41 UTC
webové aplikace se používají v čím dál více oblastech
existuje snaha nahradit webovou platformou nativní aplikace
aby to bylo možné, musí mít aplikace skrze prohlížeč přístup k mnoha funkcím, které pro normální webové stránky a aplikace nejsou nutné
postupně vzniká velké množství rozhraní, které chybějící funkcionalitu postupně doplňují
před použitím je vždy nutné ověřit podporu např. pomocí http://caniuse.com/
pěkný přehled je na MDN https://developer.mozilla.org/en-US/docs/Web/API
dovoluje ukládání dat klíč/hodnota
existují dva druhy úložiště s různou délkou perzistence – localStorage
a sessionStorage
pro každou doménu je velikost ukládaných dat omezena
obyklý limit pro uložená data je 5–25 MB
pokročilejší úložiště typu klíč/hodnota
lze ukládat větší objemy dat (až GB)
jako hodnotu lze ukládat i objekty
podporuje transkace
pracuje asynchronně
pro rychlejší vyhledávání lze definovat indexy
možnost kreslení libovolných 2D objektů přímo do stránky
oblíbené pro programování her nebo psaní aplikací typu grafický editor
https://html.spec.whatwg.org/multipage/the-canvas-element.html
možnost vykreslování 3D scén
rozhraní je webovou obdobou známého rozhraní OpenGL
rozhraní pro generování, zpracování a míchání hudby
syntéza a rozpoznávání hlasu
jednoduché rozhraní pro získání aktuální polohy
uživatel s „prozrazením polohy“ musí souhlasit
polohu lze zjistit i méně přesně na základě IP adresy
čtení informací o stavu baterie
nabíjí se, procento a čas zbývající energie, …
informace o prostorové orientaci zařízení a jejích změnách
http://w3c.github.io/deviceorientation/spec-source-orientation.html
čtení ovládacích prvků herního ovladače
protokol a rozhraní pro síťovou komunikaci mezi prohlížečem a serverem
komunikace je obousměrná a není rozdělená na požadavek/odpověď jako v případě protokolu HTTP
umožňuje přenos video v reálném čase bez použití pluginů
vhodné například pro implementaci video konferencí
umožňuje spuštění kódu na pozadí (obdoba vkláken)
s původní stránkou lze komunikovat zasíláním zpráv
Notification API umožňuje generovat systémová oznámení
samotné HTML5 přímo nabízí základní podporu – detekci online/offline stavu a appcache
AppCache – jednoduchý mechanismus, jak si prohlížeč může do vyrovnávací paměti uložit všechny zdroje nezbytné pro chod aplikací (HTML, CSS, JS)
AppCache je bohužel málo flexibilní pro reálné aplikace
kód běžící na pozadí a umožňující ovlivňovat všechny HTTP požadavky generované aplikací
pomocí tohoto nízkoúrovňového mechanismu lze implementovat například cachování aplikace – při prvním spuštění se vše uloží do Web Storage a v offline režimu čte Service Worker soubory odtud
odlišnou logiku chování aplikace v online/offline režimu lze zapouzdřit do Service Workeru
webová aplikace, která se chová podobně jako nativní
PWA lze nainstalovat a běží ve svém okně místo v záložce prohlížeče
obvykle pro instalaci vyžadují mnohem méně místa než nativní aplikace