Tengo una codificación especial que solo funciona para navegadores HTML5 (material de geolocalización simple). Quiero redirigir a los usuarios de iPhone y Android a la versión m.example.com de mi sitio web. ¿Cómo es la mejor manera de hacer esto?
Tengo una codificación especial que solo funciona para navegadores HTML5 (material de geolocalización simple). Quiero redirigir a los usuarios de iPhone y Android a la versión m.example.com de mi sitio web. ¿Cómo es la mejor manera de hacer esto?
Respuestas:
puede usar la detección de UserAgent o puede usar jQuery.support (). Como está buscando una funcionalidad específica, puede combinar los dos para obtener lo que desea.
UserAgent podría ser tu mejor apuesta. Haga esto con un archivo .htaccess para reducir sus solicitudes http y posiblemente flashear su sitio principal antes de la redirección en el caso de una conexión lenta o un rendimiento lento de javascript.
Puede ver la lista (en su mayoría) exhaustiva de agentes de usuarios móviles en la página de wikipedia . Como puede ver, existen similitudes entre fabricantes y versiones que podría buscar en una expresión regular.
Su pregunta toca dos partes ... redirección y compatibilidad html5.
Redireccionamiento
Estoy usando el siguiente .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]
Para php puede usar esta biblioteca: http://detectmobilebrowsers.mobi/ ... pero le sugiero encarecidamente que use htaccess para el tiempo de procesamiento y la seguridad.
Puedes encontrar algunos ejemplos adicionales aquí
http://ohryan.ca/blog/2009/02/18/revisiting-mobile-redirection-using-htaccess-rewrite-rules/
Capacidades del navegador
Como mi teléfono Android no tiene ningún problema con html5 con código de geolocalización. Puede considerar usar la Biblioteca Javascript de Modernizr para detectar las capacidades del navegador del cliente que visita su página.
La excelente plantilla HTML5 repetitiva está utilizando modernizr de fábrica para soportar este tipo de necesidades.
Mi opinión es: sugiero utilizar el método htaccess para todo excepto teléfonos y navegadores recientes compatibles con modernizr y permitir que Modernizr verifique a los usuarios de Android y iPhone para obtener compatibilidad con la función html5 y redirigir el "resto" en su versión "sin geolocalización".
Ejemplo de Modernizr:
if (Modernizr.geolocation) {
// do stuff
}else{
// propose mobile version
}
Espero que esto ayude
Si está codificando con PHP, puede usarlo $_SERVER['HTTP_USER_AGENT']
para verificar el encabezado UserAgent, que se envía casi por cualquier dispositivo móvil importante al script PHP. Luego simplemente compare el valor de este encabezado con substr
fuction con lo que sea necesario tener dentro.
Por ejemplo, los dispositivos Apple siempre tendrán subcadenas 'iphone' o 'ipad'; Los dispositivos Android siempre tendrán 'android'. Casi todos los dispositivos móviles tendrán una subcadena 'móvil' en este encabezado.