Unacademy | Pro trvalé

Mám nějaké speciální kódování, které funguje pouze pro prohlížeče HTML5 (jednoduché geolokační věci). Chci uživatele iPhone a Android přesměrovat na verzi m.example.com mého webu. Jak je to nejlepší?

můžete použít detekci UserAgent nebo můžete použít jQuery.support (). Jelikož hledáte konkrétní funkce, můžete tyto dvě kombinace zkombinovat a získat to, co chcete.

UserAgent může být ve skutečnosti vaše nejlepší sázka. Udělejte to se souborem .htaccess, abyste omezili své požadavky http a případně blikali hlavní web před přesměrováním v případě pomalého připojení nebo pomalého výkonu JavaScriptu.

(Většinou) úplný seznam mobilních uživatelských agentů můžete vidět na stránce wikipedia. Jak vidíte, existují podobnosti mezi výrobci a verzemi, které byste mohli hledat v regulárním výrazu.

  • 3 Toto je back-end je velmi výhodnější než dělat to s JS, zejména proto, že šířka pásma na mobilních zařízeních je velmi úzká. nejlepší je metoda .htaccess, následovaná metodou PHP / ASP / bez ohledu na backend

Vaše otázka se dotýká dvou částí .. přesměrování a kompatibilita s html5.

Přesměrování

Používám následující .htaccess:

RewriteCond %{HTTP_ACCEPT} 'text\/vnd\.wap\.wml|application\/vnd\.wap\.xhtml\+xml' [NC,OR] RewriteCond %{HTTP_USER_AGENT} 'sony|symbian|nokia|samsung|mobile|windows ce|epoc|opera' [NC,OR] RewriteCond %{HTTP_USER_AGENT} 'mini|nitro|j2me|midp-|cldc-|netfront|mot|up\.browser|up\.link|audiovox' [NC,OR] RewriteCond %{HTTP_USER_AGENT} 'blackberry|ericsson,|panasonic|philips|sanyo|sharp|sie-' [NC,OR] RewriteCond %{HTTP_USER_AGENT} 'portalmmm|blazer|avantgo|danger|palm|series60|palmsource|pocketpc' [NC,OR] RewriteCond %{HTTP_USER_AGENT} 'smartphone|rover|ipaq|au-mic,|alcatel|ericy|vodafone\/|wap1\.|wap2\.|iPhone|android' [NC] RewriteRule ^(.*)$ http://m.example.com/ [L,R=302] 

Pro php můžete použít tuto knihovnu: http://detectmobilebrowsers.mobi/ ... ale důrazně doporučuji použít htaccess pro zpracování času a bezpečnosti.

Zde naleznete několik dalších příkladů

http://ohryan.ca/blog/2009/02/18/revisiting-mobile-redirection-using-htaccess-rewrite-rules/

Možnosti prohlížeče

Protože můj telefon Android nemá problém s html5 s geolokačním kódem. Můžete zvážit použití knihovny Modernizr Javascript k detekci schopností klientského prohlížeče, který navštíví vaši stránku.

Skvělá šablona HTML5 s typovým štítkem využívá modernizr out of the box k podpoře tohoto druhu potřeb.

Můj názor je: Navrhuji použít metodu htaccess pro všechno kromě nedávných telefonů a prohlížečů podporovaných modernizrem a nechat uživatele Android a iPhone zkontrolovat pomocí Modernizr pro podporu funkcí html5 a přesměrovat „zbytek“ na vaši verzi „bez geolokace“.

Modernizr příklad:

 if (Modernizr.geolocation) { // do stuff }else{ // propose mobile version } 

Snad to pomůže

Pokud programujete s PHP, můžete použít $_SERVER['HTTP_USER_AGENT'] pro kontrolu hlavičky UserAgent, která je odeslána téměř jakýmkoli významným mobilním zařízením do skriptu PHP. Pak jen porovnejte hodnotu této hlavičky s substr fukce na vše, co potřebuje mít uvnitř.

Například zařízení Apple budou mít vždy podřetězce „iphone“ nebo „ipad“; Zařízení Android budou vždy mít „android“. Téměř každé mobilní zařízení bude mít v této hlavičce uveden podřetězec „mobile“.

Pracoval pro vás: Charles Robertson | Chcete nás kontaktovat?