Rozpoznání zařízení a optimalizace webu pro mobilní prohlížeč
31.01.2008 – 22:49:22Základem kvalitního mobilního webu je rozpoznání přistupujícího zařízení. Je sice pravda, že spoustu mobilních webů neprování detekci telefonu, ale tím musí mít jednu verzi pro všechny telefony, takže si nemůžou dovolit používat pokročilejší funkce mobilních prohlížečů, nemůžou používat užitečné grafické prvky atp.
K tomu aby jsme vytvořili kvalitní mobilní web založený na detekci telefonu potřebujeme následující:
- získání jednoznačného identifikátoru zařízení
- databázi zařízení a jejich vlastností a nedostatků
- rozumný způsob aplikace zjištěných vlastností na obsah stránky
Nejjednodušší způsob, jak získat identifikace telefonu je HTPP hlavička User-Agent, kde většinou najdeme výrobce a typ telefonu. Hlavička User-Agent má sice být standartizovaná od Open Mobile Aliance, ale výrobci telefonů si s tím zas tak hlavu nelámou, takže tady budete muset použít svou představivost k rozpoznávání. Další možnost je UA-Profile. To je XML dokument obsahující informace o daném zařízení. Cesta k tomuto dokumentu je unikátní pro daný model, v nekterých případech i pro verzi firmwaru. Jakmile začnete být spokojeni s tím, jak vám to hezky funguje, tak přijde Opera Mini, která pro jistotu v User-Agentu posílá akorát, že je to Opera Mini a s UA-Profilem se nenamáhá. Naštěstí OM posílá vlastní speciální hlavičku s názvem telefonu.
Co si budeme povídat. Dát dohromady takové množství informací o nedostatcích mobiních prohlížečů není vůbec žádná sranda. Doporučuji využít už hotovou databázi WURFL, kde najde vše potřebné. Například knihovna pro Python dokonce obsahuje i nějaké algoritmy pro rozpoznání telefonu, ale radši je nikomu nedoporučuji. Knihovnu použijte pouze pro přehození dat do vlastní databáze.
Teď máme vše, co potřebujem. Víme jaký telefon nám přistupuje na web a máme dostupné informace o tom, co na něm může být v nepořádku, případně jako to udělat aby to fungovalo. Tady už jde hlavně o to, jakým způsobem servírujete uživateli obsah. Pokud používáte templaty, tak si do každé template předáte informace o aktuálním zařízení a tak si už pořešíte vyjímky pro danou situaci. Pokud si generujete obsah nějakým svým vlastním způsobem, tak můžete úpravy zakomponovat přímo do CMS a pak se už o nic nestarat. Doudám, že jsem alespoň někoho nasměroval správným směrem. Pokud někdo máte nějaké vlastní originální řešení této problematiky, tak pište do diskuze. PS: Bohužel nemůžu moc popisovat systém generování obsahu pro mobilní web, co máme na seznamu, ale snad i tyto obecné informace někomu pomůžou