2010-04-16 13 views
6

Tengo un sitio web existente y me gustaría crear una versión móvil del mismo que sea más adecuada. Por ejemplo, el sitio principal utiliza menús desplegables y todos sabemos que son bastante fallas en los dispositivos móviles.Detectando solicitudes de navegadores móviles en ASP.NET

Me gustaría redireccionar a mi versión móvil (será un subdominio del sitio actual) si detecto una solicitud desde un navegador móvil. Entonces, cuando busquen algo en Google y vengan a mi sitio, automáticamente verán la versión móvil (al igual que Wikipedia).

¿ASP.NET proporciona una manera fácil de hacer esto? Si no, ¿cómo puedo hacerlo?

+0

@fravelgue Si va a venir aquí y llanto sobre que es un duplicado, luego hombre y vote para cerrarlo y señalarme el duplicado. No encontré nada. ¡Tu ruido no es útil en absoluto! –

+0

sry mate. Creo que WURFL podría ser interesante para ti. Entonces mdbf tiene algunos problemas: http://mdbf.codeplex.com/Thread/View.aspx?ThreadId=209583 – fravelgue

Respuesta

1

Hay un article on CodeProject que proporciona dicha función.

+0

Bueno, esta no es exactamente la respuesta que esperaba. El análisis de cadenas de agente de usuario es un triste último recurso para mí. –

+0

Eso es lo único que podría distinguir una solicitud de navegador móvil de un navegador normal. –

+0

Bueno, tengo un sueño! Que un día, mis cuatro hijos pequeños podrán escribir 'If Request.IsMobile' –

2

Hay un proyecto en CodePlex que puede utilizar: Mobile Device Browser File

Descripción del Proyecto

el navegador móvil archivo de definición de contiene definiciones para dispositivos y navegadores móviles individuales. Al ejecutar vez, ASP.NET utiliza la información en el encabezado de la solicitud para determinar qué tipo de dispositivo/navegador ha hecho la solicitud .

Este proyecto proporciona un archivo de datos que cuando se utiliza con ASP.NET detectará el dispositivo móvil entrante y le presentará como el desarrollador web con un conjunto de 67 capacidades o propiedades que describen el dispositivo que solicita. Estas capacidades de van desde el tamaño de pantalla hasta el soporte de cookies y proporcionan toda la información que necesita para adaptar contenido de reproducción para teléfonos móviles y dispositivos .

¿Qué es el archivo de definición del navegador del dispositivo móvil?

El navegador del dispositivo móvil Definición archivo contiene las definiciones de capacidad para dispositivos móviles individuales y navegadores. En tiempo de ejecución, ASP.NET utiliza archivo de esta .browser, junto con la información en la petición HTTP cabecera, para determinar qué tipo de dispositivo/navegador ha hecho la solicitud y cuáles son las capacidades del dispositivo que son . Esta información es expuesta al desarrollador a través de la propiedad Request.Browser y permite a personalizar la presentación de su página web para adaptarla a las capacidades del dispositivo de destino.

3

Puede utilizar la propiedad IsMobileDevice en algún lugar del Request.Browser. Sin embargo, necesitas definiciones de navegador decentes. Uso estas excelentes definiciones de navegador: Ocean's place browser definitions.

Son realmente en profundidad y lo mejor que he visto. Creo que actualmente también está trabajando en .NET4.

3

Creo que la mejor solución es WURFL. Es un repositorio de descripción de dispositivo más actualizado y es gratis. El único inconveniente es .net api es GPL.

3

Debe ser sencillo ...

Heres la JS para el mismo ...

espero que ayude a alguien ..

var useragent = navigator.userAgent; 

var isMobile = !!useragent.match(/iPhone|Android|Blackberry|Sony|Nokia|Motorola|Samsung/i), 
    isWebBrowser = !!useragent.match(/Mozilla/i); 

// Redirect the call accordingly. 

    if(isWebBrowser && !isMobile) 
      //call to web portal 
      alert(" You seem to me... calling from Web Browser") 
    else if(isMobile) 
     //call to mobile apps 
      alert(" Call seems to be from Mobile device...") 
    else 
    { 
     // jus kiddin... 
     alert(" Unable to detect the device..... Please report to admin...") 
    } 
+0

El problema con esta solución, que experimenté al menos en Chrome, es que la página sigue cargando después de que se detecta el navegador móvil y establece la ubicación.href en su sección móvil. Parece extraño que la página se cargue a mitad de camino y el usuario se reenvía a la mitad. Sería más sencillo si el usuario fuera redireccionado antes de acceder a la página web. –

Cuestiones relacionadas