asp.net mobile

asp.net - ¿Cómo funciona IsMobileDevice?



(6)

Ahora, después de 4 años, es aún más simple

Request.Browser.IsMobileDevice

MSDN hace sonar tan fácil de detectar un navegador móvil:

if (Request.Browser["IsMobileDevice"] == "true" ) { Response.Redirect("MobileDefault.aspx"); }

En realidad, parece que también puedes verificar Request.Browser.IsMobileDevice. Pero, ¿cómo funciona esto realmente? Ni siquiera tengo un archivo .browser ... ¿qué está pasando detrás de escena aquí? ¿Hay algunos valores predeterminados incorporados para ASP.NET 2.0?


Dado que para la mayoría de los sitios, es realmente el tamaño de la pantalla lo que importa y no tanto las capacidades (al menos cuando se habla de teléfonos modernos con cosas como Safari y Chrome), ¿no sería más conveniente verificar la resolución?

Request.Browser.ScreenPixelsHeight

y

Request.Browser.ScreenPixelsWidth


Los problemas se resolvieron cuando agregué 51 grados, solo agregué 51 grados usando Nuget, eso es todo. Vea más aquí https://51degrees.codeplex.com


Mi comprensión actual es que solo hay una solución exacta para el problema de detectar si un navegador es móvil y luego detectar sus capacidades reales. Esta solución es WURFL de ScientiaMobile (http://www.scientiamobile.com). Que, a partir de Aug30, ya no es gratuito para cada uso. WURFL ahora se lanza con una API de ASP.NET bajo AGPL. El repositorio de datos también viene con una licencia específica que no permite la copia y el uso con API diferentes a la estándar (a menos que se compre una licencia comercial).

Por lo tanto, para fines prácticos, otros enfoques, como 51Degrees, no se pueden usar con versiones más recientes y futuras del repositorio WURFL, y esto dificultará que 51Degrees detecte nuevos dispositivos (Windows Phone 7.5, por ejemplo).

En cuanto a MDBF (un proyecto descartado), aún puede funcionar para detectar si un dispositivo es móvil (mucho mejor que el dispositivo IsMobile en ASP.NET). No es del todo confiable en lo que respecta a las propiedades del dispositivo. Insiste en que mi HTC Desire Android tiene un tamaño de pantalla de 240x320, que es claramente incorrecto.

Mi compañía compró una licencia de WURFL y estamos totalmente de acuerdo con eso.


No confiaría en el enlace de MSDN, desafortunadamente no existe un estándar común para los navegadores móviles y muchos intentan imitar a sus contrapartes no móviles. También devolverá verdadero si no reconoce. Ver este link


Una cantidad de archivos * .browser se envían con .NET:

C:/Windows/Microsoft.NET/Framework/v2.0.50727/CONFIG/Browsers

El tiempo de ejecución utiliza expresiones regulares de los archivos * .browser para coincidir con la cadena entrante User-Agent, y luego establece un conjunto de propiedades basadas en cada coincidencia que encuentra (puede haber varias en la jerarquía).

Si necesita soporte de dispositivos móviles en profundidad, considere instalar el MDBF, que agrega soporte para unos 400 dispositivos:

http://mdbf.codeplex.com/