Что такое пользовательский агент iPad?
из того, что я собрал, iPad использует iPhone OS, но с другим разрешением экрана от iPhone и iPod touch. Поэтому многим сайтам, возможно, придется изменить свое обнаружение агента пользователя, чтобы адаптироваться к iPad.
Итак, может ли кто-нибудь с доступом к iPad или iPad SDK дать нам строку user-agent?
12 ответов:
Mozilla/5.0 (iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10
с симулятор, в режиме iPad:
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-us) AppleWebKit/531.9 (KHTML, как Gecko) версия / 4.0.3 Safari / 531.9(это для 3.2 бета 1)браузер Mozilla/5.0 (iPad с; у; 3_2 процессора ОС как Мак ОС Х; ан-Нас) AppleWebKit/531.21.10 (ХТМЛ, как Гекко) версия/Андроид 4.0.4/7B334b сафари/531.21.10 (это для версии 3.2 beta 3)
и в режиме iPhone:
Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.20 (KHTML, like Gecko) Mobile/7B298g
Я не знаю, насколько надежен симулятор, но, похоже, вы не можете определить, является ли устройство iPad только из строки user-agent.(Примечание: я нахожусь на Snow Leopard, который является строкой агента пользователя для Safari
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; en-us) AppleWebKit/531.21.8 (KHTML, как Gecko) версия / 4.0.4 Safari / 531.21.10
)
С реального устройства:
Mozilla/5.0 (iPad; U; CPU OS OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B367 Safari/531.21.10
стоит отметить, что при работе в режиме веб-приложения (с помощью
apple-mobile-web-app-capable
meta tag) агент пользователя изменяется от:Mozilla/5.0 (iPad; U; CPU OS 3_2_1 как Mac OS X; en-us) AppleWebKit / 531.21.10 (KHTML, like Gecko) версия / 4.0.4 Mobile / 7B405 Safari / 531.21.10
to:
Mozilla/5.0 (iPad; U; CPU OS 3_2_1 как Mac OS X; en-us) AppleWebKit / 531.21.10 (KHTML, like Gecko) Mobile / 7B405
iPad 2 под 4.3.5:
браузер Mozilla/5.0 (iPad и; у; OS процессор 4_3_5 как Мак ОС Х; ан-Нас) AppleWebKit/533.17.9 (ХТМЛ, как Гекко) версии 5.0.2 мобильный/8L1 сафари/6533.18.5
шахты говорит:
браузер Mozilla/5.0 (iPad и; у; OS процессор 4_3 как Мак ОС Х; да-ДК) AppleWebKit/533.17.9 (ХТМЛ, как Гекко) версии 5.0.2 мобильный/8F190 сафари/6533.18.5
здесь вы идете!
браузер Mozilla/5.0 (iPad с; у; 3_2 процессора ОС как Мак ОС Х; ан-Нас) AppleWebKit/531.21.10 (ХТМЛ, как Гекко) версия/Андроид 4.0.4/7B334b сафари/531.21.10
похоже, что все мобильные устройства apple, iphone, ipad или ipod используют пользовательский агент, который содержит как "мобильный", так и "Safari".
однако, используя последний SDK (4.0.1) и чтение агента пользователя на моем сервере rails (используя
request.env["HTTP_USER_AGENT"]
), мы никогда не получаем часть "сафари".независимо от того, делается ли запрос из симулятора или реального устройства, отладки или выпуска, он всегда выглядит примерно так:
Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_2 как Mac OS X; de-de) AppleWebKit / 528.18 (KHTML, как Gecko) Mobile / 7D11"
просто нет 'сафари'. :- (Поэтому мы должны использовать часть "iPhone", чтобы быть уверенными. Это то, что apple не рекомендует делать.
из симулятора 3.2 финал:
Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, как геккон) версия / 4.0.4 Mobile / 7b367 Safari / 531.21.10
Safari на iPad строка пользовательского агента в iPhone OS 3.2 SDK beta 3:
Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, как геккон) версия / 4.0.4 Мобильный / 7b334b Safari / 531.21.10
Подробнее: http://developer.apple.com/library/safari/#technotes/tn2010/tn2262/_index.html
Я думаю, стоит упомянуть, что вам обычно не нужно использовать всю строку агента, если, возможно, вы не найдете причину, по которой вам нужно адаптировать веб-сайт к конкретной модели.
вы можете проверить для iPhone, iPad и iPod в строке агента и покрыть все ваши базы.
if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i))) { appleMobileDevice = true; } else { appleMobileDevice = false; }