Estoy usando C# asp.net sitio web.

¿Cómo puedo comprobar si el usuario con el ipad o iphone? ¿Cómo puedo comprobar que la plataforma?

Por ejemplo, si el usuario entra en la web desde el ipad me gustaría mostrar»Hola usuario del ipad»

  • Puede usted ser más específico? Estás escribiendo una aplicación de C# con MonoTouch para la implementación de estos dispositivos? Estás escribiendo un C# ASP .NET web de la que pueda tener acceso a estos dispositivos?
  • Me pa que no es una aplicación en C#, pero un C# web (ASP?) Usted debe verificar el UserAgent
  • Sí es c# asp.net web
  • Wikipedia tiene una introducción a UserAgent aquí: en.wikipedia.org/wiki/User_agent.
  • Buena pregunta. +1.
InformationsquelleAutor avnic | 2011-03-01

9 Comentarios

  1. 20

    Para iPad agente de usuario es algo así como:

    Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 como Mac OS X; es-es) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Móvil/7B314 Safari/531.21.10

    y para su iPhone algo como:

    Mozilla/5.0 (iPhone; U; CPU como Mac OS X; es) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Móvil/1A543a Safari/419.3

    Muchos más, dependiendo de la versión y el clima en su iPhone 3 o 4

    así que mejor hacer una subcadena de búsqueda para el iPhone y el iPad como sugiere otra respuesta

    • La búsqueda para «iPhone» también id de Windows teléfonos como el iphone. Véase mi respuesta a continuación.
  2. 71

    ACTUALIZACIÓN:
    Dado que el iPad agente de usuario contiene la palabra iPhone como @Rob Hruska mencionó:

    Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 como Mac OS X; es-es)
    AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Móvil/7B314
    Safari/531.21.10

    y iPhone agente de usuario es algo así como este:

    Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 como Mac OS X; es-es)
    AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Móvil/8A293
    Safari/6531.22.7

    sería correcto para comprobar la palabra iPhone; o iPad; para identificar el dispositivo:

    var userAgent = HttpContext.Current.Request.UserAgent.ToLower();
    if (userAgent.Contains("iphone;"))
    {
        //iPhone
    }
    else if (userAgent.Contains("ipad;"))
    {
        //iPad
    }
    else
    {
        //Think Different ;)
    }
    • esta solución es realmente ok, a mi me funciona, se preguntan por qué esta no es la respuesta seleccionada… jeje yo simplemente copia y pega y ‘Alex’ esto ayudó.. Gracias! 🙂
    • Yo Alex, no me ayudó demasiado. +1.
    • Esto no identificar ipad como el iphone, desde el iPad agente de usuario contiene ... CPU iPhone ...?
    • Necesita comprobar el iPad antes iPhone desde iPad también contiene iPhone, o siempre va a tener iPhone como respuesta.
    • necesidad de comprobar iPhone; o iPad. No importa el orden.
    • Esto devolverá un montón de Ventanas teléfonos como el iPhone == true porque tienen «como el iPhone» en el agente de usuario. Ver mi respuesta completa a continuación.
    • Vale la pena mencionar que el iPod touch se tiene la cadena «iPod» en el agente de usuario.
    • este será el id de Windows teléfonos como el iphone. Véase mi respuesta a continuación.
    • gracias por señalar, pero se debe trabajar ya que estoy buscando una palabra clave con un punto y coma ; que ganar los teléfonos aún no tiene en su cadena de agente de usuario.
    • bastante justo, aunque dudo que Apple llegue a poner «me gusta» como un prefijo para «iPhone» 😉

  3. 5

    El agente de usuario para estos dispositivos incluye «iPod», «iPad» o «IPhone», según corresponda. Tenga en cuenta que hay varios agentes de usuario en el juego, por lo que un exacta partido es imprudente -, pero tienen un aspecto de su dispositivo en http://whatsmyuseragent.com

    A fin de comprobar que el agente de usuario en las cabeceras.

  4. 4

    usted puede hacer que el UserAgent

    string ua = Request.UserAgent;
    if (ua != null && (ua.Contains("iPhone") || ua.Contains("iPad")))
    {
    ...
    ...
    ...
    }
    • Esto no siempre funciona, véase mi respuesta a continuación.
  5. 4

    Me gustaría tratar de WURFL primera
    http://wurfl.sourceforge.net/

    Que tienen .NET API y Muy buenos ejemplos de código. http://wurfl.sourceforge.net/dotnet_index.php

    La clase que va a ayudar a que se llama WURFLManager y dispone de los siguientes métodos:

    ¿Cómo puedo comprobar si el agente de usuario es un ipad o un iphone?

    Uso WURFL http://wurfl.sourceforge.net/dotnet_index.php

    Si el uso de asp.net mvc puede utilizar un 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 de 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/

    51Degrees.Mobi Fundación es una fuente abierta .Proyecto de RED que mejora la Solicitud.Navegador de modo que se obtiene la información de Inalámbrico Universal Archivo de Recursos (WURFL) – uno de los más completos y actualizados de las bases de datos de información del dispositivo móvil. La gran noticia es que 51Degrees.Mobi Fundación está ahora disponible como un paquete de NuGet, por lo que es increíblemente fácil de instalar y actualizar.

  6. 3

    Tener cuidado de los teléfonos de Windows! Por alguna extraña razón muchos de los teléfonos de Windows decir «como el iPhone» en el agente de usuario. Así que usted desea comprobar:

    public bool IsIPhone
    {
    get
    {
    if (!UserAgent.ToUpper().Contains("LIKE IPHONE"))
    {
    return UserAgent.ToUpper().Contains("IPHONE");
    }
    return false;
    }
    }

    Ejemplo Windows phone agente de usuario (desde el Lumia 735):

    «Mozilla/5.0 (Mobile, Windows Phone 8.1; Android 4.0; BRAZO; Trident/7.0; Contacto; rv:11.0; IEMobile/11.0; NOKIA, Lumia 735) como el iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537»

  7. 0
    private static final Pattern IPHONE_AGENT = Pattern.compile(".*iPad.*|.*iPhone.*|.*iPod.*");    
    String userAgent = request.getHeader("User-Agent");
    if (userAgent != null && IPHONE_AGENT.matcher(userAgent).matches()) {
    //do something
    }
  8. 0

    usted puede obtener el cliente de OS datos de Request.UserAgent
    obtener nombre del sistema operativo y la versión del sistema operativo.

      public static string GetClientOS(string ua, string platform)
    {
    if (ua.Contains("Android"))
    return string.Format("Android {0}", GetMobileVersion(ua, "Android"));
    if (ua.Contains("iPad"))
    return string.Format("iPad OS {0}", GetMobileVersion(ua, "OS"));
    if (ua.Contains("iPhone"))
    return string.Format("iPhone OS {0}", GetMobileVersion(ua, "OS"));
    if (ua.Contains("Linux") && ua.Contains("KFAPWI"))
    return "Kindle Fire";
    if (ua.Contains("RIM Tablet") || (ua.Contains("BB") && ua.Contains("Mobile")))
    return "Black Berry";
    if (ua.Contains("Windows Phone"))
    return string.Format("Windows Phone {0}", GetMobileVersion(ua, "Windows Phone"));
    if (ua.Contains("Mac OS"))
    return "Mac OS";
    if (ua.Contains("Windows NT 5.1") || ua.Contains("Windows NT 5.2"))
    return "Windows XP";
    if (ua.Contains("Windows NT 6.0"))
    return "Windows Vista";
    if (ua.Contains("Windows NT 6.1"))
    return "Windows 7";
    if (ua.Contains("Windows NT 6.2"))
    return "Windows 8";
    if (ua.Contains("Windows NT 6.3"))
    return "Windows 8.1";
    if (ua.Contains("Windows NT 10"))
    return "Windows 10";
    return  platform + (ua.Contains("Mobile") ? " Mobile " : "");
    }
    public static string GetMobileVersion(string userAgent, string device)
    {
    var temp = userAgent.Substring(userAgent.IndexOf(device) + device.Length).TrimStart();
    var version = string.Empty;
    foreach (var character in temp)
    {
    var validCharacter = false;
    int test = 0;
    if (int.TryParse(character.ToString(), out test))
    {
    version += character;
    validCharacter = true;
    }
    if (character == '.' || character == '_')
    {
    version += '.';
    validCharacter = true;
    }
    if (validCharacter == false)
    break;
    }
    return version;
    }
  9. 0

    De iOS 13 el agente de usuario cambiado a Mac OS, por ejemplo:

    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15
    (KHTML, like Gecko) Version/13.0 Safari/605.1.15

Dejar respuesta

Please enter your comment!
Please enter your name here