2010-08-16 8 views
6

He leído que es malo (no se recomienda) utilizar User Agent Sniffing para enviar el contenido correcto para un navegador móvil, por lo que me pregunto ¿cuál es la mejor manera de hacerlo?¿Cómo detecto un navegador móvil y le envío contenido apropiado?

Estoy usando ASP.NET MVC, y he creado mi sitio y funciona bien en los navegadores de escritorio, así que estoy buscando comenzar a construir una versión móvil. Cuando un navegador móvil viene a mi sitio, me gustaría utilizar un conjunto diferente de puntos de vista, que idealmente posee los siguientes atributos:

  1. Enlace imágenes para pre-escalados
  2. el uso de JavaScript mínima
  3. Quitar todo, pero el contenido esencial

Mi primer pensamiento fue olfatear al agente de usuario y luego enviar un archivo .CSS diferente, pero como dije anteriormente, he leído que esta es una mala forma de hacerlo, así que Te estoy preguntando por tus pensamientos.

+1

posible duplicado de [Detección de solicitudes de navegadores móviles en ASP.NET] (http://stackoverflow.com/questions/2653765/detecting-requests-from-mobile-browsers-in-asp-net) – jfar

+0

@jfar, MVC tiene requisitos específicos para esto. Ver la publicación de Hanselman. AFAICS, la respuesta que enlazas no cubre eso. –

+0

Puede ver algunas soluciones aquí: http://stackoverflow.com/questions/6844020/way-to-do-doption-adaptation-to-mobile –

Respuesta

7

El agente de usuario es realmente todo lo que tiene en una solicitud HTTP GET, pero debe dejar que otra persona mantenga la lista. Usamos el Microsoft Mobile Device Browser File con un motor de vista personalizado de una manera más o menos similar a this Scott Hanselman post.

+0

Gracias, esto es lo que pensé, supongo que entendí mal la razón por la que estaba dijo no hacerlo. Estoy completamente de acuerdo en que mantener una lista de compatibilidad es un PITA! – Nate

1

El enfoque más simple podría ser usar un dominio separado "m.sudominio.com" o "sudominio.mobi" (Source) de esa manera usted puede suponer que el usuario está en un dispositivo móvil.

+0

En este caso, ¿usaría un agente de navegador y una cookie para redirigir una vez, y si volvieran, suponga que he etiquetado incorrectamente a su agente de usuario y los dejo continuar en el sitio completo? – Nate

+0

Este enfoque puede ser doloroso. Debe suponer que cualquier persona que visite m.website.com quiere el sitio móvil, pero siempre debe proporcionarle un enlace al sitio completo en el pie de página. –

+0

@Nissan: es una buena idea, aunque cuanto más lo pienso, más convencido estoy de que mi respuesta no es necesariamente una buena idea. – ChrisF

0

Si bien creo que es desagradable para oler el navegador para determinar la capacidad y debe utilizar la capacidad de olfatear, como JQuery.support. Cuando se trata de presentar diseños significativamente diferentes, creo que hay que buscar la identificación del navegador y actuar en consecuencia.

+0

Eso funciona * después de cargar la página. * Sin embargo, al responder a una solicitud 'GET' en el servidor, no hay forma de hacerlo. –

+0

@ Craig - Por supuesto, tenía mi cabeza pensando desde el lado del cliente, pero el problema es el procesamiento desde el lado del servidor donde, obviamente, solo tiene el ID de navegador suministrado durante el GET. – Lazarus

Cuestiones relacionadas