it-swarm-tr.com

İPhone / Android tarayıcıyı m.example.com sitesine nasıl yönlendirirsiniz?

Yalnızca HTML5 tarayıcıları için çalışan bazı özel kodlamalar var (basit coğrafi konum bilgileri). İPhone ve Androidkullanıcılarını web sitemin m.example.com sürümüne yönlendirmek istiyorum. Bunu yapmanın en iyi yolu nasıl?

8
JoshFinnie

userAgent algılama özelliğini kullanabilir veya jQuery.support () öğesini kullanabilirsiniz. Belirli bir işlevsellik aradığınızdan, istediğinizi elde etmek için ikisini birleştirebilirsiniz.

UserAgent aslında en iyi bahisiniz olabilir. Bunu, http isteklerinizin kestirilmesi için bir .htaccess dosyasıyla yapın ve yavaş bağlantı veya yavaş javascript performansı durumunda yeniden yönlendirmeden önce ana sitenizi yanıp söner.

Mobil kullanıcı temsilcilerinin (çoğunlukla) ayrıntılı listesini wikipedia page adresinde görebilirsiniz. Gördüğünüz gibi, üreticiler ve sürümler arasında düzenli bir ifadeyle arayabileceğiniz benzerlikler vardır.

2
helloandre

Sorunuz iki bölüme dokunuyor .. yönlendirme ve html5 uyumluluğu.

Yönlendirme

Aşağıdaki .htaccess kullanıyorum:

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]

PHP için bu kütüphaneyi kullanabilirsiniz: http://detectmobilebrowsers.mobi/ ... fakat işlem süresi ve güvenlik için htaccess kullanmanızı şiddetle tavsiye ediyorum.

Burada bazı ek örnekler bulabilirsiniz.

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

Tarayıcı yetenekleri

Android telefonumun coğrafi konum kodu olan html5 ile hiçbir sorunu yok. Sayfanızı ziyaret eden istemci tarayıcısının özelliklerini saptamak için Modernizr Javascript Library komutunu kullanabilirsiniz.

Excellent HTML5 boilerplate şablonu bu tür ihtiyaçları desteklemek için kutudan modernizr kullanıyor.

Kanımca: htaccess yöntemini, modernizr tarafından desteklenen son telefonlar ve tarayıcılar dışındaki her şey için kullanmanızı ve Android ve iPhone kullanıcılarının html5 özelliği için Modernizr tarafından kontrol edilmesini ve sizin "" geri kalanını "yönlendirebilmelerini sağlayın konum belirleme olmadan "sürüm.

Modernizr örneği:

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

Bu yardımcı olur umarım

2
jflaflamme

PHP ile kodlama yapıyorsanız, neredeyse herhangi bir ana mobil cihaz tarafından PHP komut dosyasına gönderilen UserAgent başlığını kontrol etmek için $_SERVER['HTTP_USER_AGENT'] kullanabilirsiniz. Öyleyse bu başlığın değerini, içinde olması gerekenlerle, substr fuction ile karşılaştırın.

Örneğin, Apple cihazlarında her zaman 'iphone' veya 'ipad' alt dizgileri bulunur; Android cihazlarında her zaman 'Android' olacaktır. Hemen hemen her mobil cihaz, bu başlıkta listelenen 'mobil' alt dizeye sahip olacaktır.

1
Paul Pi