O que é a string do agente do usuário iOS 5.0?

91

O que é a string do agente do usuário iOS 5.0 ?

Aqui está o agente de usuário do iOS 4.0 : O que é o agente de usuário do iPhone 4?

chown
fonte
2
Nesta resposta do SO , você pode encontrar uma expressão regular genérica para verificar se uma determinada string de agente do usuário é iOS 5.0 .
Stephan,

Respostas:

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
fonte
3
Corrigir. Do meu iPhone: Mozilla / 5.0 (iPhone; CPU iPhone OS 5_0 como Mac OS X) AppleWebKit / 534.46 (KHTML, como Gecko) Versão / 5.1 Mobile / 9A334 Safari / 7534.48.3
Ben,
11

Este site parece manter uma lista completa que ainda é mantida

iPhone, iPod Touch e iPad de iOS 2.0 - 5.1.1 (até o momento).

Você precisa montar toda a string do agente do usuário com as informações listadas nas colunas da página.

Nate
fonte
1
Comecei com o site referenciado aqui, mas ele não tinha o número de compilação do kit da web, que é o que o Google Analytics exibe. Encontrei uma lista mais completa em useragentstring.com/pages/Safari .
Andrew Steitz
1
Eu compilei uma lista com uma quantidade MUITO grande de user agents. Espero que ajude: codereye.com/2014/12/list-of-mobile-user-agents.html
bashan
Obrigado @Nate, farei isso.
bashan
10

Encontrei uma lista mais completa na string do agente do usuário . BTW, este site tem mais do que apenas strings de agente de usuário iOS. Além disso, a página inicial irá "quebrar" a string do agente do usuário do seu navegador atual para você.

Andrew Steitz
fonte
O link da string do agente do usuário foi quebrado. :( Acho que deveria apontar aqui agora: useragentstring.com/pages/useragentstring.php?name=Safari
Lucas Morgan
1
@LucasMorgan, obrigado pela nota! Eu consertei em minha resposta.
Andrew Steitz
2

consertei minha avaliação de string do agente limpando a string para LOWERCASE "iphone os 5_0" em oposição a "iPhone OS 5_0". agora estou atribuindo apropriadamente classes específicas do iOS 5 ao meu html, quando o scrub em maiúsculas falhou.

Geek Devigner
fonte
1
Bem, eu, pessoalmente, detectaria mais do que apenas iPhone, porque no exemplo acima você não está renderizando código específico do iOS 5 para iPads e iPod touch. Você também pode querer pensar no fato de que a versão será incrementada em algum ponto. Minha recomendação provavelmente seria aparente para a maioria - detecte um dispositivo móvel da Apple primeiro, ou seja, iPad / iPod / iPhone e, se for esse o caso, analise a versão do ... não do iOS, mas provavelmente do navegador, ou seja, neste caso A versão / 5.1 seria o indicador. Depois de saber a versão, você aplicaria seu código na condição "não inferior a".
hndcrftd
1

Eu uso o seguinte para detectar diferentes dispositivos móveis, janela de visualização e tela. Funciona muito bem para mim, pode ser útil para os outros:

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.devicePixelRatioé a proporção entre pixels físicos e pixels independentes de dispositivo (quedas) no dispositivo. window.devicePixelRatio= pixels / quedas físicas.

Mais informações aqui .

Fúlvio
fonte
1
Obrigado pela resposta, mas observe que esta não é uma maneira eficiente e algumas versões do dispositivo serão perdidas. Por exemplo, acabei de verificar o agente do usuário no meu antigo iPad 1 e ele diz "... iPad; CPU OS 5_1_1 ...". Nenhuma de suas variáveis ​​teria captado isso. Você precisaria de um regex comovar iOS5 = /(iPhone|iPad).*OS 5_.*/i.test(navigator.userAgent);
Mauvis Ledford