Верный. С моего 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
Я начал с указанного здесь сайта, но на нем не было номера сборки веб-комплекта, который отображается в Google Analytics. Я нашел более полный список на useragentstring.com/pages/Safari .
Я нашел более полный список в строке пользовательского агента . Кстати, на этом сайте есть больше, чем просто строки пользовательского агента iOS. Кроме того, домашняя страница "разбивает" строку пользовательского агента вашего текущего браузера за вас.
@LucasMorgan, спасибо за замечание! Я исправил это в своем ответе.
Эндрю Стейтц
2
исправлена оценка строки моего агента, очищая строку для LOWERCASE "iphone os 5_0" вместо "iPhone OS 5_0". теперь я правильно назначаю определенные классы iOS 5 своему html, когда не удалось выполнить очистку верхнего регистра.
Что ж, я лично обнаружил бы больше, чем просто 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= физические пиксели / провалы.
Благодарим за ответ, но учтите, что это неэффективный способ и некоторые версии устройств будут потеряны. Например, я только что проверил пользовательский агент на своем старом iPad 1, и он говорит: «... iPad; CPU OS 5_1_1 ...». Ни одна из ваших переменных не уловила бы этого. Вам понадобится регулярное выражение вродеvar iOS5 = /(iPhone|iPad).*OS 5_.*/i.test(navigator.userAgent);
Ответы:
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
источник
На этом сайте есть полный список, который все еще поддерживается
iPhone, iPod Touch и iPad с iOS 2.0 - 5.1.1 (на сегодняшний день).
Вам действительно нужно собрать полную строку пользовательского агента из информации, указанной в столбцах страницы.
источник
Я нашел более полный список в строке пользовательского агента . Кстати, на этом сайте есть больше, чем просто строки пользовательского агента iOS. Кроме того, домашняя страница "разбивает" строку пользовательского агента вашего текущего браузера за вас.
источник
исправлена оценка строки моего агента, очищая строку для LOWERCASE "iphone os 5_0" вместо "iPhone OS 5_0". теперь я правильно назначаю определенные классы iOS 5 своему html, когда не удалось выполнить очистку верхнего регистра.
источник
Я использую следующее для обнаружения различных мобильных устройств, области просмотра и экрана. У меня работает неплохо, может быть полезно другим:
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
= физические пиксели / провалы.Больше информации здесь .
источник
var iOS5 = /(iPhone|iPad).*OS 5_.*/i.test(navigator.userAgent);