Что такое строка пользовательского агента iOS 5.0?


91

Что такое строка пользовательского агента iOS 5.0 ?

Вот пользовательский агент iOS 4.0 : Что такое пользовательский агент iPhone 4?


2
В этом SO-ответе вы можете найти общее регулярное выражение, чтобы проверить, является ли данная строка пользовательского агента строкой iOS 5.0 .
Стефан

Ответы:


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

3
Верный. С моего iPhone: Mozilla / 5.0 (iPhone; CPU iPhone OS 5_0, например Mac OS X) AppleWebKit / 534.46 (KHTML, как Gecko) Версия / 5.1 Mobile / 9A334 Safari / 7534.48.3
Бен

11

На этом сайте есть полный список, который все еще поддерживается

iPhone, iPod Touch и iPad с iOS 2.0 - 5.1.1 (на сегодняшний день).

Вам действительно нужно собрать полную строку пользовательского агента из информации, указанной в столбцах страницы.


1
Я начал с указанного здесь сайта, но на нем не было номера сборки веб-комплекта, который отображается в Google Analytics. Я нашел более полный список на useragentstring.com/pages/Safari .
Эндрю Стейтц

1
Я составил список с ОЧЕНЬ большим количеством пользовательских агентов. Надеюсь, это поможет: codereye.com/2014/12/list-of-mobile-user-agents.html
bashan

Спасибо, @Nate, так и сделаю.
bashan

10

Я нашел более полный список в строке пользовательского агента . Кстати, на этом сайте есть больше, чем просто строки пользовательского агента iOS. Кроме того, домашняя страница "разбивает" строку пользовательского агента вашего текущего браузера за вас.


Ссылка на строку пользовательского агента не работает. :( Я думаю, он должен сейчас указывать сюда: useragentstring.com/pages/useragentstring.php?name=Safari
Лукас Морган

1
@LucasMorgan, спасибо за замечание! Я исправил это в своем ответе.
Эндрю Стейтц

2

исправлена ​​оценка строки моего агента, очищая строку для LOWERCASE "iphone os 5_0" вместо "iPhone OS 5_0". теперь я правильно назначаю определенные классы iOS 5 своему html, когда не удалось выполнить очистку верхнего регистра.


1
Что ж, я лично обнаружил бы больше, чем просто iPhone, потому что в приведенном выше примере вы не рендерируете специальный код iOS 5 для iPad и iPod touch. Вы также можете подумать о том, что в какой-то момент версия будет увеличиваться. Моя рекомендация, вероятно, будет очевидна для большинства - сначала обнаружите мобильное устройство Apple, то есть iPad / iPod / iPhone, а затем, если это так, проанализируйте версию ... не iOS, но, вероятно, браузера, то есть в этом случае Версия / 5.1 будет индикатором. Как только вы узнаете версию, вы примените свой код при условии «не ниже».
hndcrftd

1

Я использую следующее для обнаружения различных мобильных устройств, области просмотра и экрана. У меня работает неплохо, может быть полезно другим:

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- это соотношение между физическими пикселями и независимыми от устройства пикселями (провалами) на устройстве. window.devicePixelRatio= физические пиксели / провалы.

Больше информации здесь .


1
Благодарим за ответ, но учтите, что это неэффективный способ и некоторые версии устройств будут потеряны. Например, я только что проверил пользовательский агент на своем старом iPad 1, и он говорит: «... iPad; CPU OS 5_1_1 ...». Ни одна из ваших переменных не уловила бы этого. Вам понадобится регулярное выражение вродеvar iOS5 = /(iPhone|iPad).*OS 5_.*/i.test(navigator.userAgent);
Mauvis Ledford
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.