루비/레일을 사용하여 iPad 3 (일명 새로운 iPad)를 감지 할 수 있습니까? 그렇다면 어떻게해야할까요?루비에서 iPad 3 감지
답변
장치를 감지 할 수는 있지만 장치 버전을 감지 할 수 없다고 생각합니다. 지금까지 내가 아는 한, 애플은 다음과 같이 나타납니다 사용자 에이전트 문자열을 제공
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
가이 문자열에는 기계 버전 정보가없는 나는 사용자의 컴퓨터를 감지하는 다른 방법을 알고하지 않습니다.
레일스에서 사용자 에이전트 문자열을 얻는 방법을 모르면 here을 확인하십시오.
일반적으로 RoR은 브라우저의 뷰포트 크기 또는 브라우저가 실행중인 컴퓨터의 해상도에 대해 알지 못합니다. 그러나 JavaScript를 사용하여이를 읽을 수 있으며 숨겨진 입력으로 서버에 전달할 수 있습니다. (here를 참조하십시오.)
을 잠시 동안 - 그 중요한주의입니다 - 당신의 스크립트를 차지
(
(screen.width == 2048 && screen.height == 1536) ||
(screen.width == 1536 && screen.height == 2048)
)
될 아이 패드 3 2048 X 1536의 해상도로 유일한 아이 패드입니다 가로 세로 모드에서 iPad 3의 해상도가 가능합니다.
request.env['HTTP_USER_AGENT'].match(/iPad/i)
은 요청하는 기기가 iPad인지 여부를 알려줍니다.
두 가지 모두 시도하면 iPad 3입니다. 완전히 만족스럽지는 않지만 작동합니다.
경고 ('화면 크기 = ('+ screen.width + ','+ screen.height + ') dpr ='+ window.devicePixelRatio); (768,1024) dpr = 2를 반환합니다. 화면이 픽셀이 아닌 점이 있기 때문입니다. – groumpf
사용자 에이전트 문자열을보고 기기가 iPad인지 여부를 감지 할 수 있습니다. 클라이언트 측 JavaScript를 사용하여 window.devicePixelRatio가 2인지 여부를 확인하여 기기에 망막 디스플레이가 있는지 여부를 감지 할 수 있습니다.
- :시오 사용자 에이전트 문자열에 화소 비율 참고하여 devicePixelRatio 전달할 수 2.
경우, 장치는 iPad3 인 그것은 자바 스크립트
로 페이지에 URL을
- 동적
당신은 CURREN에 다시 사용자를 (에서는 window.location 사용) 리디렉션 할 수있는 형태로 숨겨진 필드에 넣어 쿠키가 설정되지 않은 경우 t 페이지.
미디어 쿼리를 사용하여 망막 장치라는 사실을 알 수 있지만 CSS에만 있습니다. –