내가 수집 한 내용에 따르면 iPad는 iPhone OS를 사용하지만 iPhone 및 iPod touch와 화면 해상도가 다릅니다. 너무 많은 사이트가 iPad에 적응하기 위해 사용자 에이전트 감지를 변경해야 할 수 있습니다.
그렇다면 iPad 또는 iPad SDK에 대한 액세스 권한이있는 사람은 누구나 사용자 에이전트 문자열을 제공 할 수 있습니까?
내가 수집 한 내용에 따르면 iPad는 iPhone OS를 사용하지만 iPhone 및 iPod touch와 화면 해상도가 다릅니다. 너무 많은 사이트가 iPad에 적응하기 위해 사용자 에이전트 감지를 변경해야 할 수 있습니다.
그렇다면 iPad 또는 iPad SDK에 대한 액세스 권한이있는 사람은 누구나 사용자 에이전트 문자열을 제공 할 수 있습니까?
답변:
Mozilla / 5.0 (iPad; U; Mac OS X와 같은 CPU iPhone OS 3_2; en-us) AppleWebKit / 531.21.10 (Gecko와 같은 KHTML) 버전 /4.0.4 Mobile / 7B314 Safari / 531.21.10
로부터 시뮬레이터 아이 패드 모드 :
Mozilla / 5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-us) AppleWebKit / 531.9 (Gecko와 같은 KHTML) 버전 /4.0.3 Safari / 531.9(3.2 베타 1 용)Mozilla / 5.0 (iPad, U, Mac OS X와 같은 CPU OS 3_2, en-us) AppleWebKit / 531.21.10 (Gecko와 같은 KHTML) 버전 /4.0.4 Mobile / 7B334b Safari / 531.21.10 (3.2 베타 용입니다. 삼)
및 iPhone 모드 :
Mozilla / 5.0 (iPhone; U; Mac OS X와 같은 CPU iPhone OS 3_2; en-us) AppleWebKit / 531.21.20 (Gecko와 같은 KHTML) Mobile / 7B298g
시뮬레이터가 얼마나 신뢰할 수 있는지는 모르겠지만 사용자 에이전트 문자열에서만 장치가 iPad인지 여부를 감지 할 수없는 것 같습니다.
(참고 : 저는 Snow Leopard에 있으며 Safari 용 사용자 에이전트 문자열이
Mozilla / 5.0 (Macintosh; U; Intel Mac OS X 10_6_2; en-us) AppleWebKit / 531.21.8 (Gecko와 같은 KHTML) 버전 /4.0.4 Safari / 531.21.10
)
(거의 10 년 후 ...)
iOS 13 부터 iPad의 사용자 에이전트가 Mac OS로 변경되었습니다. 예를 들면 다음과 같습니다.
Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit / 605.1.15 (Gecko와 같은 KHTML) 버전 /13.0 Safari / 605.1.15
웹 앱 모드 ( apple-mobile-web-app-capable
메타 태그 사용)에서 실행할 때 사용자 에이전트가 다음과 같이 변경 된다는 점은 주목할 가치가 있습니다.
Mozilla / 5.0 (iPad, U, Mac OS X와 같은 CPU OS 3_2_1, en-us) AppleWebKit / 531.21.10 (Gecko와 같은 KHTML) 버전 /4.0.4 Mobile / 7B405 Safari / 531.21.10
에:
Mozilla / 5.0 (iPad, U, Mac OS X와 같은 CPU OS 3_2_1, en-us) AppleWebKit / 531.21.10 (Gecko와 같은 KHTML) Mobile / 7B405
4.3.5 미만 iPad 2 :
Mozilla / 5.0 (iPad, U, Mac OS X와 같은 CPU OS 4_3_5, en-us) AppleWebKit / 533.17.9 (Gecko와 같은 KHTML) 버전 /5.0.2 Mobile / 8L1 Safari / 6533.18.5
여기 있습니다!
Mozilla / 5.0 (iPad, U, Mac OS X와 같은 CPU OS 3_2, en-us) AppleWebKit / 531.21.10 (Gecko와 같은 KHTML) 버전 /4.0.4 Mobile / 7B334b Safari / 531.21.10
모든 모바일 애플 기기, 아이폰, 아이 패드 또는 아이팟이 '모바일'과 '사파리'를 모두 포함하는 사용자 에이전트를 사용한다는 것은 일반적인 합의 인 것 같습니다.
그러나 최신 SDK (4.0.1)를 사용하고 내 rails 서버에서 사용자 에이전트를 읽고 (사용 request.env["HTTP_USER_AGENT"]
) 'Safari'부분을 얻지 못했습니다.
요청이 시뮬레이터 또는 실제 장치, 디버그 또는 릴리스에서 생성되었는지 여부에 관계없이 항상 다음과 같이 보입니다.
Mozilla / 5.0 (iPhone; U; Mac OS X와 같은 CPU iPhone OS 3_1_2, de-de) AppleWebKit / 528.18 (Gecko와 같은 KHTML) Mobile / 7D11 "
'사파리'가 아닙니다. :-( 그래서 우리는 확실히하기 위해 'iPhone'부분을 사용해야합니다. 그것은 애플이 권장하지 않는 것입니다.
iPhone OS 3.2 SDK 베타 3의 iPad 사용자 에이전트 문자열의 Safari :
Mozilla / 5.0 (iPad, U, Mac OS X와 같은 CPU OS 3_2, en-us) AppleWebKit / 531.21.10 (Gecko와 같은 KHTML) 버전 /4.0.4 Mobile / 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;
}
iOS 13에서 'iPad'를 찾을 수 없습니다.이 js current-device 를 사용하면 작동합니다.
이 핵심 :
const iPadOS13Up = navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1
https://github.com/matthewhudson/current-device/blob/master/src/index.js#L55
당신은 당신이 죽는 유형을 볼 수 있습니다 : http://matthewhudson.github.io/current-device/