2012-09-20 6 views
5

question에 iPhone 4 사용자 에이전트와 iOS 5.0 사용자 에이전트에 대한 질문이있었습니다.iPhone 5 및 그 아래에있는 iOS 장치 감지

다른 모바일 장치, 뷰포트 및 화면을 검색하려면 다음을 사용하십시오.

iPhone 5와 다른 모든 iOS 기기를 구분할 수 있기를 바랍니다. 내가 아는 한, iOS 5.0 사용자 에이전트 var iPhone5을 탐지하기 위해 사용하는 회선은 iOS 5.0을 실행하는 모든 iOS 장치에도 적용되므로 기술적으로 올바르지 않습니다.

var pixelRatio = window.devicePixelRatio || 1; 

var viewport = { 
    width: window.innerWidth, 
    height: window.innerHeight 
}; 

var screen = { 
    width: window.screen.availWidth * pixelRatio, 
    height: window.screen.availHeight * pixelRatio 
}; 

var iPhone = /iPhone/i.test(navigator.userAgent); 
var iPhone4 = (iPhone && pixelRatio == 2); 
var iPhone5 = /iPhone OS 5_0/i.test(navigator.userAgent); // ? 
var iPad = /iPad/i.test(navigator.userAgent); 
var android = /android/i.test(navigator.userAgent); 
var webos = /hpwos/i.test(navigator.userAgent); 
var iOS = iPhone || iPad; 
var mobile = iOS || android || webos; 

window.devicePixelRatio 실제 픽셀과 장치에 장치 독립적 픽셀 (딥) 사이의 비율이다. window.devicePixelRatio = 실제 픽셀/딥입니다.

자세한 정보 here. 당신은 화면의 개체를 기반으로 검색 할 수없는 이유는

+1

@nhahtdh : 글쎄, 그건 아이폰 OS 5.0 사용자 에이전트 아니에요 아이폰 5 그러나 내가 좋겠 아이폰 5를 포함한 모든 iOS 기기에서 실행할 수, 아이폰 OS 5.0을 기억 예를 들어 iPhone 4와 iPhone 5를 구별하고 싶습니다. – fuzz

+0

@nhahtdh : 왜 댓글을 달고 투표를 마감 하시겠습니까? 또한, 이유를주는 신경? – fuzz

+0

당신이 묻고있는 것을주의 깊게 읽지 않고 무릎 꿇은 반응이었습니다. – nhahtdh

답변

11

-

screen.availWidth 
screen.availHeight 

내 아이폰 5에 그것은 320 폭과 비 망막 형태의 해상도 548 높이를보고합니다.

뷰포트 크기를보고하기 때문에 window.innerWidth 및 window.innerHeight를 사용하면 안됩니다. 페이지가 확대 된 경우 사용 가능한 화면 크기가 아닌 확대 된 영역의 크기가 표시됩니다.

+0

That 's 568, not 548. – ForNeVeR

2

2 라인은 충분히 :

var iphone4 = (window.screen.height == (960/2)); 
var iphone5 = (window.screen.height == (1136/2)); 
+0

사용자 에이전트 탐지가 필요합니다. 화면 크기만으로는 충분하지 않습니다. –