2012-09-20 9 views
5

question, iPhone 4 kullanıcı aracısı ve iOS 5.0 kullanıcı aracısı hakkında SO üzerinde sorulmuştur.IPhone 5 ve bunun altında herhangi bir iOS cihazı tespit ediliyor

Farklı mobil cihazları, görünüm pencerelerini ve ekranı algılamak için aşağıdakileri kullanıyorum.

iPhone 5 ve diğer tüm iOS aygıtlarını birbirinden ayırt edebilmeyi isterim. Bildiğim kadarıyla, iOS 5.0 kullanıcı aracısı var iPhone5'u saptamak için kullandığım satır, iOS 5.0 çalıştıran herhangi bir iOS cihazına da uygulanacak, dolayısıyla teknik olarak yanlış.

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 fiziksel piksel ve cihazda, cihaz bağımsız piksel (eğimler) arasındaki orandır. window.devicePixelRatio = fiziksel piksel/dips.

Daha fazla bilgi here. Ekran nesnesine bağlı olarak tespit yok Neden

+1

@nhahtdh: Eh, bu iOS 5.0 kullanıcı aracısı değil iPhone 5 ancak ediyorum, iPhone 5 dahil tüm iOS cihazlar üzerinde çalışabilir, iOS 5.0 hatırla Örneğin iPhone 4 ve iPhone 5 arasında ayrım yapmak gibi. – fuzz

+0

@nhahtdh: Neden yorum yapıp kapatmaya oy verdiniz? Ayrıca, bir sebep vermek ister misiniz? – fuzz

+0

İstediğiniz şeyi dikkatli bir şekilde okumadan, dizsiz bir tepki oldu. – nhahtdh

cevap

11

-

screen.availWidth 
screen.availHeight 

benim iPhone 5'te günü 320 genişlik ve olmayan retina formda onun çözünürlüğü 548 yükseklik, raporlar.

Window.innerWidth ve window.innerHerhangi bir görünüm kullanmamanız gerekir. Sayfa yakınlaştırılırsa, yakınlaştırılan alanın boyutunu bildirir ve mevcut ekranın uygun boyutunu bildirmez.

+0

Bu 568 değil, 548. – ForNeVeR

2

2 satır yeterli:

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

Ayrıca, kullanıcı aracısı algılamaya da ihtiyacınız var. Ekran boyutu tek başına yeterli değildir. –

İlgili konular