it-swarm.com.de

Wie leiten Sie den iPhone / Android-Browser zu m.example.com?

Ich habe eine spezielle Codierung, die nur für HTML5-Browser funktioniert (einfaches Geolocation-Zeug). Ich möchte iPhone- und Android Benutzer auf die Version von m.example.com meiner Website umleiten. Wie geht das am besten?

8
JoshFinnie

sie können die UserAgent-Erkennung oder den jQuery.support () verwenden. Da Sie nach bestimmten Funktionen suchen, können Sie beide kombinieren, um das zu erhalten, was Sie möchten.

UserAgent ist möglicherweise die beste Wahl. Führen Sie dies mit einer .htaccess-Datei durch, um Ihre http-Anforderungen zu reduzieren und möglicherweise Ihre Hauptseite vor der Umleitung zu flashen, falls die Verbindung langsam ist oder die Leistung von Javascript langsam ist.

Die (meist) vollständige Liste der Agenten für mobile Benutzer finden Sie auf der Seite Wikipedia-Seite . Wie Sie sehen, gibt es Ähnlichkeiten zwischen Herstellern und Versionen, nach denen Sie in einem regulären Ausdruck suchen könnten.

2
helloandre

Ihre Frage besteht aus zwei Teilen: Umleitung und HTML5-Kompatibilität.

Umleitung

Ich benutze die folgenden .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]

Für PHP können Sie diese Bibliothek benutzen: http://detectmobilebrowsers.mobi/ ... aber ich empfehle dringend, htaccess für Verarbeitungszeit und Sicherheit zu verwenden.

Weitere Beispiele finden Sie hier

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

Browserfunktionen

Da mein Android Telefon kein Problem mit HTML5 mit Geolocation Code hat. Sie können die Modernizr Javascript Library verwenden, um die Funktionen des Client-Browsers zu ermitteln, der Ihre Seite besucht.

Die exzellente Vorlage HTML5-Boilerplate verwendet modernizr von Anfang an, um diese Art von Anforderungen zu erfüllen.

Meine Meinung ist: Ich schlage vor, die htaccess-Methode für alle Geräte mit Ausnahme der neuesten von modernizr unterstützten Telefone und Browser zu verwenden und Android- und iPhone-Benutzer von Modernizr auf Unterstützung für html5-Funktionen überprüfen zu lassen und den "Rest" auf Ihre "umzuleiten. ohne geolocation "version.

Modernizr Beispiel:

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

Hoffe das hilft

2
jflaflamme

Wenn Sie mit PHP codieren, können Sie $_SERVER['HTTP_USER_AGENT'] verwenden, um den UserAgent-Header zu überprüfen, der von fast allen gängigen Mobilgeräten an PHP gesendet wird. Dann vergleichen Sie einfach den Wert dieses Headers mit der Funktion substr mit dem, was darin enthalten sein muss.

Beispielsweise haben Apple Geräte immer Unterzeichenfolgen für 'iphone' oder 'ipad'. Android Geräte haben immer 'Android'. Nahezu auf jedem mobilen Gerät wird in dieser Kopfzeile eine "mobile" Unterzeichenfolge aufgeführt.

1
Paul Pi