Обнаружение iOS5 в мобильном Safari (предпочтительно JavaScript) - PullRequest
8 голосов
/ 19 октября 2011

Новое фиксированное позиционирование, введенное в iOS5, повредило мое веб-приложение, и мне нужен способ обнаружить пользователей iOS5.

Как я могу обнаружить iOS5? Что такое строка агента браузера? JavaScript предпочтительнее. Спасибо!

Ответы [ 4 ]

15 голосов
/ 19 октября 2011

Из вопроса SO: Что такое строка агента пользователя iOS 5 :

iPhone:

Mozilla / 5.0 (iPhone; процессор iPhone OS 5_0, например Mac OS X)

IPad:

Mozilla / 5.0 (iPad; CPU OS 5_0, например Mac OS X)

А вот способ проверить ios 5.x в javascript:

<script type="text/javascript">
    if (navigator.userAgent.match(/OS 5(_\d)+ like Mac OS X/i))
        // this helps detect minor versions such as 5_0_1
        document.write("You have iOS 5! Aren't you special!");
</script>
3 голосов
/ 08 декабря 2011

Я разработал ответ Чоуна чуть дальше, с проверкой на любое устройство iOS5, будь то 5 или 5.0.1 или более поздние версии:

var ios5 = navigator.userAgent.match(/OS 5_[0-9_]+ like Mac OS X/i) != null;
if(ios5) {
    // Now you can do specific stuff for devices on any version of iOS5
}
2 голосов
/ 09 ноября 2011

Возможно, вы используете Modernizr и обнаруживаете для веб-работников , так как они не были доступны до iOS 5. Необходимо по-прежнему исключать Android, поскольку Android 2.0+ их поддерживает. Это обеспечит вам прямую совместимость с iOS6, которую вы не собираетесь получать ни с одним из уже предоставленных парсингов пользовательского агента.

2 голосов
/ 03 ноября 2011

Вам необходимо учитывать "CPU OS 5_0" и "CPU iPhone OS 5_0", грубое и грязное регулярное выражение:

<script type="text/javascript">
if (navigator.userAgent.match(/(iPad|iPhone);.*CPU.*OS 5_\d/i))
{ 
   alert("On iOS 5")
}
else
{
   alert("Not on iOS 5"); //could be either 4- or 6+
}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...