¿Qué es la cadena de agente de usuario de iOS 5.0?

Respuestas:

151

iPhone:

Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3

iPad:

Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3
chown
fuente
3
Correcto. Desde mi iPhone: Mozilla / 5.0 (iPhone; CPU iPhone OS 5_0 como Mac OS X) AppleWebKit / 534.46 (KHTML, como Gecko) Versión / 5.1 Mobile / 9A334 Safari / 7534.48.3
Ben
11

Este sitio parece tener una lista completa que aún se mantiene

iPhone, iPod Touch y iPad desde iOS 2.0 - 5.1.1 (hasta la fecha).

Necesita ensamblar la cadena de usuario-agente completa a partir de la información que aparece en las columnas de la página.

Nate
fuente
1
Comencé con el sitio al que se hace referencia aquí, pero no tenía el número de compilación del kit web, que es lo que muestra Google Analytics. Encontré una lista más completa en useragentstring.com/pages/Safari .
Andrew Steitz
1
Compilé una lista con MUY gran cantidad de agentes de usuario. Espero que ayude: codereye.com/2014/12/list-of-mobile-user-agents.html
bashan
Gracias @Nate, lo haremos.
bashan
10

Encontré una lista más completa en la cadena del agente de usuario . Por cierto, este sitio tiene algo más que cadenas de agentes de usuario de iOS. Además, la página de inicio "desglosará" la cadena de agente de usuario de su navegador actual.

Andrew Steitz
fuente
El enlace de la cadena del agente de usuario está roto. :( Creo que debería apuntar aquí ahora: useragentstring.com/pages/useragentstring.php?name=Safari
Lucas Morgan
1
@LucasMorgan, ¡gracias por la nota! Lo he arreglado en mi respuesta.
Andrew Steitz
2

arreglé la evaluación de mi cadena de agente limpiando la cadena para LOWERCASE "iphone os 5_0" en lugar de "iPhone OS 5_0". ahora estoy asignando correctamente clases específicas de iOS 5 a mi html, cuando falló el scrub en mayúsculas.

Geek Devigner
fuente
1
Bueno, yo, personalmente, detectaría algo más que un iPhone, porque en el ejemplo anterior no se está procesando el código específico de iOS 5 en iPads y iPod touch. También es posible que desee pensar en el hecho de que la versión se incrementará en algún momento. Mi recomendación probablemente sería evidente para la mayoría: detecte primero un dispositivo móvil de Apple, es decir, iPad / iPod / iPhone y luego, si ese es el caso, analice la versión de ... no el iOS pero probablemente el navegador, es decir, en este caso La versión / 5.1 sería el indicador. Una vez que conozca la versión, deberá aplicar su código en la condición "no inferior a".
hndcrftd
1

Utilizo lo siguiente para detectar diferentes dispositivos móviles, viewport y pantalla. Funciona bastante bien para mí, puede ser útil para otros:

var pixelRatio = window.devicePixelRatio || 1;

var viewport = {
    width: window.innerWidth,
    height: window.innerHeight
};

var screen = {
    width: window.screen.availWidth * pixelRatio,
    height: window.screen.availHeight * pixelRatio
};

var iPhone = /iPhone/i.test(navigator.userAgent);
var iPhone4 = (iPhone && pixelRatio == 2);
var iPhone5 = /iPhone OS 5_0/i.test(navigator.userAgent);
var iPad = /iPad/i.test(navigator.userAgent);
var android = /android/i.test(navigator.userAgent);
var webos = /hpwos/i.test(navigator.userAgent);
var iOS = iPhone || iPad;
var mobile = iOS || android || webos;

window.devicePixelRatioes la relación entre píxeles físicos y píxeles independientes del dispositivo (caídas) en el dispositivo. window.devicePixelRatio= píxeles físicos / caídas.

Más info aquí .

fulvio
fuente
1
Gracias por la respuesta, pero tenga en cuenta que esta no es una forma eficiente y algunas versiones del dispositivo se perderán. Por ejemplo, acabo de comprobar el agente de usuario en mi antiguo iPad 1 y dice "... iPad; CPU OS 5_1_1 ...". Ninguna de sus variables habría captado eso. Necesitaría una expresión regular comovar iOS5 = /(iPhone|iPad).*OS 5_.*/i.test(navigator.userAgent);
Mauvis Ledford