browser - omitir - Forma estándar para detectar navegadores móviles en una aplicación web basada en la solicitud http
mozilla firefox (19)
¿No sería la forma estándar de verificar el agente de usuario? Aquí hay una base de datos de agentes de usuario que puede usar para detectar navegadores móviles.
Estamos empezando a seguir el camino del soporte de navegador móvil para una aplicación web de comercio electrónico (basada en Java / Servlet). Por supuesto, hay muchas decisiones por tomar, pero me parece que la piedra angular es poder detectar de manera confiable los navegadores móviles y tomar las decisiones sobre el contenido que se devolverá en consecuencia. ¿Existe una forma estándar de hacer esta determinación (rápidamente) en función de la solicitud http, e idealmente obtener más información sobre el navegador y el dispositivo que realiza la solicitud (tamaño de pantalla, capacidades html, etc.?).
También agradecería cualquier información complementaria que pueda ser utilizada por alguien que ha tomado este camino de tomar una aplicación de Internet de gran escala y diseñar arquitectónicamente compatibilidad con navegadores móviles desde el lado del desarrollo.
[edit] Ciertamente entiendo el encabezado de la solicitud y la información sobre una base de datos de agentes de usuario estándar es de gran ayuda. Para aquellos que hablan sobre ''otras'' propiedades de encabezado de solicitud, si puede incluir un nombre / recurso de valores estandarizado similar que sería de gran ayuda.
[editar] Varios usuarios han propuesto soluciones que implican una llamada por cable a algún servicio web que hará la detección. Aunque estoy seguro de que esto funciona, no es una buena solución para un sitio de comercio electrónico empresarial por dos razones: 1) velocidad. Una llamada a través del cable para cada solicitud de página a un tercero tendría enormes implicaciones de rendimiento. 2) dependencia / legal. Ataremos el tiempo de respuesta de nuestro sitio web y la funcionalidad clave a su servicio, lo que es horrible por razones legales y de riesgo.
Acabo de encontrar Detección de dispositivos y funciones en la web móvil con estos contenidos:
- Usar la detección de dispositivos y características para mejorar la experiencia del usuario en la web móvil
- Introducción a la detección de dispositivos
- Enfoques para el diseño de sitios móviles
- Hacer nada
- Proporcionar un sitio móvil genérico
- Diseñando con el móvil y la adaptación en mente
- Estrategias de adaptación de contenido y agrupamiento de dispositivos
- Agrupación de dispositivos
- Adaptación de contenido
- Minimizando la necesidad de adaptación en primer lugar
- Enfoques comunes para la detección de dispositivos
- Adaptación del lado del servidor
- Adaptación del lado del cliente
- Agente de usuario del lado del servidor (UA) y búsqueda del encabezado
- La cadena UA del lado del servidor combinada con la búsqueda en la base de datos del dispositivo
- Detección de perfiles de agente de usuario del lado del servidor (UAProf)
- Detección basada en tecnología JavaScript
- Tipos de medios CSS
- Consultas de medios CSS
- Buenas prácticas adicionales
- Redireccionamiento + enlace manual
- Página de destino + enlace manual
- Página de muestra descargable
Cuando tuve una necesidad similar recientemente, encontré este código que usa HTTP_X_WAP_PROFILE
, HTTP_ACCEPT
y HTTP_USER_AGENT
para identificar un navegador como móvil o no móvil. Es PHP, pero podría convertirse bastante fácilmente en lo que necesite (lo implementé en VBScript para ASP clásico).
Irónicamente, resultó que no terminé usando el código porque decidimos proporcionar URL específicas para usuarios móviles y no móviles, pero ciertamente funcionó cuando lo estaba probando ...
Deberá verificar la cadena de agente de usuario con una lista previamente definida, como esta
Después de días de buscar la forma correcta de detectar un dispositivo móvil, decidí mantenerlo simple [estúpido] y pondré un botón de ''sitio de dispositivo móvil'' en mi página de índice ... ¡está a solo un clic de distancia!
El hecho es que confiar en el agente de uso no es lo suficientemente bueno para detectar navegadores móviles.
Claro, hace años podías buscar ciertas cadenas y adivinar que era un Nokia o algo así, pero ahora hay tantos teléfonos, y tantos que fingen ser cosas que no son, que se necesita algo más sofisticado.
Encontré un gran sitio en el texto del enlace, que se basa en la misma solución que MTV usa para todos sus sitios web móviles. Es REALMENTE bueno, ya que tiene un lenguaje de marcado independiente del dispositivo, pero lo más importante es que ofrecen una llamada al servicio web para isMobileDevice ().
Solo mire en el manual y luego ''cómo funciona''.
Lo he estado utilizando para los sitios de mis clientes y aún tengo que encontrar un navegador móvil que no detecte con precisión. Totalmente cegador
La forma más fácil es crear una matriz con etiquetas regulares asociadas con navegadores móviles. Al menos la mayoría de los agentes de usuario móvil deben tener la palabra mobile, mini, nokia, java ME, android, iphone, sistema operativo móvil, etc. Si alguno coincide con el agente de usuario, utilizando php strpos, imprima un botón móvil en la parte superior de la página . Deja al usuario para elegir. Me encanta el sitio completo porque mi navegador móvil me brinda la misma experiencia, excepto que necesito hacer zoom o desplazarme la mayoría de las veces.
La respuesta de @ David se menciona usando WURFL, que es probablemente su mejor opción. Sin embargo, tenga en cuenta que la tasa de éxito suele ser de alrededor del 60% (de la experiencia de la mía y de los demás). Con los transportistas cambiando los UA constantemente y la cantidad de perfiles de dispositivo que existen (¿más de 60,000?), No hay una forma a prueba de balas para obtener todos los datos correctos que desee.
Solo un poco de advertencia antes de confiar en gran medida en un dispositivo DB. Intentaría mantener abiertas las opciones del usuario al permitirles cambiar las opciones de sesión en caso de que haya adivinado mal.
La siguiente configuración ligera de Apache hace un buen trabajo y recuerda las preferencias de los usuarios si prefieren la versión de PC.
<VirtualHost (your-address-binding)>
(your-virtual-host-configuration)
RewriteEngine On
RewriteCond %{QUERY_STRING} !ui=pc
RewriteCond %{HTTP_COOKIE} !ui=pc
RewriteCond %{HTTP_USER_AGENT} "^.*(iphone|ipod|ipad|android|symbian|nokia|blackberry| rim |opera mini|opera mobi|windows ce|windows phone|up/.browser|netfront|palm-|palm os|pre//|palmsource|avantogo|webos|hiptop|iris|kddi|kindle|lg-|lge|mot-|motorola|nintendo ds|nitro|playstation portable|samsung|sanyo|sprint|sonyericsson|symbian).*$" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "^(alcatel|audiovox|bird|coral|cricket|docomo|edl|huawei|htc|gt-|lava|lct|lg|lynx|mobile|lenovo|maui|micromax|mot|myphone|nec|nexian|nook|pantech|pg|polaris|ppc|sch|sec|spice|tianyu|ustarcom|utstarcom|videocon|vodafone|winwap|zte).*$" [NC]
RewriteRule /(.*) http://bemoko.com/$1 [L]
RewriteCond %{QUERY_STRING} "ui=pc"
RewriteRule ^/ - [CO=ui:pc:(your-cookie-domain):86400:/]
RewriteCond %{QUERY_STRING} "ui=default"
RewriteRule ^/ - [CO=ui:default:(your-cookie-domain):86400:/]
</VirtualHost>
Más información sobre este @ http://bemoko.com/training.team/help/team/pc-to-mobile-redirect
No puedo verlo publicado aquí, pero otra opción que estoy buscando actualmente es www.detectmobilebrowser.com
OK, aquí hay una respuesta muy simple: ¿qué hay de dejar que el usuario decida? en su inicio de sesión a su ap, proporcione un enlace al sitio móvil. en el sitio móvil, proporcione un enlace "de regreso al sitio principal" - pruebe www.fazolis.com en su dispositivo móvil - hacen un buen trabajo al respecto.
luego, en el enlace al sitio móvil desde el sitio del navegador, registre su "voto" y su agente de usuario. Puede construir su propia lista confiable de SUS clientes que desean el sitio móvil. Úselo con las especificaciones en el tamaño de pantalla para estos dispositivos móviles, y puede construir una lógica bastante buena para una experiencia de usuario satisfactoria. NUNCA publicaría en una fuente de red algo tan elemental como esto.
Ah, y en su "sitio móvil": si escribe su ap, semánticamente bien, entonces debería poder presentar un solo sitio tanto para dispositivos móviles como para navegadores, y tener que escribir dos conjuntos de páginas por separado. Solo algo en lo que pensar: vale la pena el esfuerzo y el esfuerzo extra para ahorrar tiempo después.
Obtendrá la mayoría de la información como el navegador, el dispositivo, los idiomas aceptados, los formatos aceptados, etc. en el encabezado de la solicitud. El agente de usuario mencionado anteriormente es parte del encabezado de solicitud.
Propongo un sistema de detección gratuito que se basa en uaprof y el agente de usuario: http://www.mobilemultimedia.be UAprof debe ser la clave principal para la detección cuando está disponible, ya que generalmente hay varios agentes de usuario para el mismo uaprof. Si desea administrar esto por su cuenta, debe ir a Wurfl porque puede descargar la base de datos completa y administrarla localmente.
Puedes usar Modernizer para detectar habilidades del navegador
Si bien se puede detectar un navegador móvil a través de su agente de usuario, la guerra del navegador en la plataforma de PC ha demostrado que olfatear a los agentes de usuario no es realmente tan bueno.
Lo ideal es que los estilos específicos se apliquen según el tipo de medio o que se envíe una respuesta diferente en función de un encabezado que no sea el agente de usuario, como el encabezado Aceptar, que indica qué tipo de contenido prefiere el navegador .
En este momento, podría ser suficiente codificar un sitio que funcione con el iPhone y con Opera a través del rastreo del navegador, pero Google Now está llegando en cualquier momento y hay muchos otros teléfonos móviles que tendrán la funcionalidad del navegador cerca del iPhone en el futuro cercano. y sería un desperdicio desarrollar un sitio web móvil que no admitiera esos dispositivos desde el principio.
puede usar las API WURFL para detectar el tipo de dispositivo
http://wurfl.sourceforge.net/wurfl_schema.php
o Modernizer para detectar habilidades del navegador
puede usar un servicio web para detectar la navegación móvil como handsetdetection.com.
Detectar navegadores móviles : fragmentos en varios lenguajes de programación.
Este artículo (y su follow-up ) parece agradable.