me gustaría probar WURFL primera http://wurfl.sourceforge.net/
Tienen API .NET y muy buenos ejemplos de código. http://wurfl.sourceforge.net/dotnet_index.php
La clase que le ayudará a que se llama WURFLManager y tiene los siguientes métodos:
Uso WURFL http://wurfl.sourceforge.net/dotnet_index.php
Si el uso de asp.net mvc puede utilizar una ActionFilter
public class MobileActionFilterAttribute : ActionFilterAttribute
{
// The WURFL database contains information about a huge number of devices and mobile browsers.
// http://wurfl.sourceforge.net/
// http://wurfl.sourceforge.net/dotnet_index.php
// http://wurfl.sourceforge.net/help_doc.php
private static readonly IWURFLManager WurflManager;
static MobileActionFilterAttribute()
{
IWURFLConfigurer configurer = new ApplicationConfigurer();
WurflManager = WURFLManagerBuilder.Build(configurer);
}
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
HttpRequestBase request = filterContext.RequestContext.HttpContext.Request;
// We don't have ARR server for dev environment, so we still need to check to see if the current domain name is the mobile site.
if (request.Url.AbsoluteUri.StartsWith(SiteConfiguration.Current.MobileSiteAddress, StringComparison.OrdinalIgnoreCase))
{
return;
}
// Creates a WURFLRequest object from an ASP.NET HttpRequest object
WURFLRequest wurflRequest = WURFLRequestFactory.CreateRequest(HttpContext.Current.Request);
// Indicates whether the current user agent string refers to a desktop agent.
if (wurflRequest.IsDesktopRequest)
return;
// Get the information about the device
IDevice deviceInfo = WurflManager.GetDeviceForRequest(wurflRequest);
// Tells you if a device is a tablet computer (iPad and similar, regardless of OS)
bool isTablet = string.Equals(deviceInfo.GetCapability("is_tablet") ?? string.Empty, "true", StringComparison.OrdinalIgnoreCase);
if (isTablet)
{
// so we don't show the mobile site for iPad.
return;
}
// Indicates whether the current user agent string refers to a mobile device.
bool isMobileRequest = wurflRequest.IsMobileRequest;
// Tells you if a device is wireless or not. Specifically a mobile phone or a PDA are considered wireless devices, a desktop PC or a laptop are not
bool isWirelessDevice = string.Equals(deviceInfo.GetCapability("is_wireless_device") ?? string.Empty, "true", StringComparison.InvariantCultureIgnoreCase);
if (isMobileRequest && isWirelessDevice)
{
// we can redirect to the mobile site!
filterContext.Result = new RedirectResult(SiteConfiguration.Current.MobileSiteAddress);
}
}
}
También hay 51Degrees.Mobi Steve Sanderson ha cubierto cómo hacer esto en su blog http://blog.stevensanderson.com/2010/12/17/using-51degreesmobi-foundation-for-accurate-mobile-browser-detection-on-aspnet-mvc-3/
Fundación 51Degrees.Mobi es un proyecto .NET de código abierto que mejora Request.Browser por lo que obtiene su información de Wireless Universal Resource File (WURFL) - uno de las bases de datos más completas y actualizadas de información de dispositivos móviles. La gran noticia es que 51Degrees.Mobi Foundation ahora está disponible como un paquete NuGet, por lo que es increíblemente fácil de instalar y actualizar.
¿Puede ser más específico? ¿Estás escribiendo una aplicación C# con MonoTouch para su implementación en estos dispositivos? ¿Estás escribiendo un sitio web C# ASP .NET al que accederán estos dispositivos? – David
Supongo que no es una aplicación C# sino un servidor web C# (ASP?) Debería verificar el UserAgent – RvdK
Sí, es C# asp.net web – avnic