Что такое пользовательский агент для iPad?
Из того, что я понял, iPad использует iPhone OS, но с другим разрешением экрана, чем у iPhone и iPod touch. Поэтому многим сайтам, возможно, придется изменить определение своего пользовательского агента, чтобы приспособиться к iPad.
Итак, может ли кто-нибудь с доступом к iPad или iPad SDK дать нам строку user-agent?
15 ответов
Mozilla/5.0(iPad; U; ЦП iPhone OS 3_2, как Mac OS X; ru-ru) AppleWebKit/531.21.10 (KHTML, как Gecko) Версия /4.0.4 Mobile/7B314 Safari/531.21.10
(почти 10 лет спустя...)
С iOS 13 пользовательский агент iPad изменился на Mac OS, например:
Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit / 605.1.15 (KHTML, например Gecko) Версия /13.0 Safari/605.1.15
С симулятора, в режиме iPad:
Mozilla / 5.0 (Macintosh; U; Intel Mac OS X 10_5_8; ru-ru) AppleWebKit/531.9 (KHTML, как Gecko) Версия / 4.0.3 Safari / 531.9(это для 3,2 бета 1)Mozilla / 5.0 (iPad; U; CPU OS 3_2, как Mac OS X; ru-ru) AppleWebKit/531.21.10 (KHTML, как Gecko) Версия / 4.0.4 Mobile / 7B334b Safari / 531.21.10 (это для бета-версии 3.2 3)
и в режиме iPhone:
Mozilla / 5.0 (iPhone; U; процессор iPhone OS 3_2, например Mac OS X; ru-ru) AppleWebKit/531.21.20 (KHTML, например Gecko) Mobile/7B298g
Я не знаю, насколько надежен симулятор, но кажется, что вы не можете определить, является ли устройство iPad только из строки user-agent.
(Примечание: я использую Snow Leopard, для которого строка агента пользователя для Safari
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; ru-ru) 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
метатег) пользовательский агент меняется с:
Mozilla / 5.0 (iPad; U; CPU OS 3_2_1 как Mac OS X; ru-ru) AppleWebKit/531.21.10 (KHTML, как Gecko) Версия /4.0.4 Mobile/7B405 Safari/531.21.10
чтобы:
Mozilla / 5.0 (iPad; U; CPU OS 3_2_1, как Mac OS X; ru-ru) AppleWebKit/531.21.10 (KHTML, как Gecko) Mobile/7B405
iPad 2 под 4.3.5:
Mozilla / 5.0 (iPad; U; CPU OS 4_3_5, как Mac OS X; ru-ru) AppleWebKit/533.17.9 (KHTML, как Gecko) Версия /5.0.2 Mobile/8L1 Safari/6533.18.5
Моя говорит:
Mozilla / 5.0 (iPad; U; CPU OS 4_3 как Mac OS X; da-dk) AppleWebKit/533.17.9 (KHTML, как Gecko) Версия /5.0.2 Mobile/8F190 Safari/6533.18.5
Ну вот!
Mozilla / 5.0 (iPad; U; CPU OS 3_2, как Mac OS X; ru-ru) AppleWebKit/531.21.10 (KHTML, как Gecko) Версия /4.0.4 Mobile/7B334b Safari/531.21.10
Похоже, что существует общее мнение, что каждое мобильное устройство Apple, iphone, ipad или ipod использует пользовательский агент, который содержит "Mobile" и "Safari".
Однако, используя последний SDK (4.0.1) и читая пользовательский агент на моем сервере rails (используя request.env["HTTP_USER_AGENT"]
), мы никогда не получим часть "Сафари".
Независимо от того, выполняется ли запрос с симулятора или реального устройства, отладки или выпуска, он всегда выглядит примерно так:
Mozilla / 5.0 (iPhone; U; процессор iPhone OS 3_1_2, как Mac OS X; де-де) AppleWebKit/528.18 (KHTML, как Gecko) Mobile/7D11"
Просто нет сафари.:-(Поэтому мы должны использовать часть "iPhone", чтобы быть уверенным. Это то, что яблоко не рекомендует делать.
С iOS 13 не могу найти "iPad", я использую это текущее js -устройство, оно работает.
это ядро:
const iPadOS13Up = navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1
https://github.com/matthewhudson/current-device/blob/master/src/index.js
вы можете видеть, что вы умираете: http://matthewhudson.github.io/current-device/
Строка пользовательского агента Safari на iPad в iPhone OS 3.2 SDK beta 3:
Mozilla / 5.0 (iPad; U; CPU OS 3_2, как Mac OS X; ru-ru) AppleWebKit/531.21.10 (KHTML, как Gecko) Версия /4.0.4 Mobile/7B334b Safari/531.21.10
Дополнительная информация: http://developer.apple.com/library/safari/
Из симулятора 3.2 финал:
Mozilla / 5.0 (iPad; U; CPU OS 3_2, как Mac OS X; ru-ru) AppleWebKit/531.21.10 (KHTML, как Gecko) Версия /4.0.4 Mobile/7B367 Safari/531.21.10
Я думаю, что стоит упомянуть, что вам обычно не нужно использовать всю строку агента, если, возможно, вы не найдете причину, по которой вам нужно адаптировать сайт к конкретной модели.
Вы можете проверить наличие iPhone, iPad и iPod в строке агента и охватить все ваши базы.
if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i))) {
appleMobileDevice = true;
}
else {
appleMobileDevice = false;
}
Поскольку Apple ОЧЕНЬ ПОМОЩЬ изменила свои строки userAgent в iOS, вы больше не можете надежно использовать регулярное выражение для ipad / iphone.
Я предлагаю комбинацию регулярных выражений для старых и текущих версий iOS (
/i(?:pad|phone)|mac os/i
) с дополнительной проверкой на
navigator.maxTouchPoints
.maxTouchPoints всегда будет 0 на Macbook, но больше 0 на iPad, iPhone (обычно 5).
Если вам нужно различать iPad и iPhone, вы можете работать с
window.outerWidth
а также
window.outerHeight
чтобы получить размер и ориентацию области просмотра. Это поможет только в той мере, в какой некоторые из больших iPhone имеют окна просмотра, которые больше, чем самые маленькие iPad.
СПАСИБО, Apple!
Только для iPad
Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10