2014-08-28 79 views

回答

16

我幾年前正在研究這個問題。總之,你不能以100%的可靠性來做到這一點。似乎有通常用於提供「最好的猜測」方法2:

1.用戶代理檢測 這是你檢查客戶端是什麼自稱是。 例如

if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) { 
    // is mobile.. 
} 

這並不完美,因爲我認爲這個屬性被偶然或以其他方式修改相當容易。另外,這個清單在2年/ 2周/ 2天內仍然是準確的!

2.使用屏幕寬度 正如你可以想像,更務實的態度 - 讓您以滿足客戶的已知的物理性能。例如

if(screen.width <= 480) {  
    // is mobile.. 
} 

然而,這是不理想的,因爲相關的現代設備越來越高的像素密度給你一個誤導性的結果:出現,你有更多的「房間」比你實際做。

如果有人有任何更好的想法來強大地辨別桌面和設備之間,請評論! :)

+0

只是爲了澄清:「更高的像素密度」意味着DPI更高,因此像素更小並且緊湊在一起,這可能會導致移動設備上的主要可用性問題,即使設備具有「筆記本電腦分辨率「,比如1024像素寬。正確? – Gimby 2014-08-28 07:52:37

+0

確切地說:例如平板電腦等設備可能會報告它是「1024像素寬」,並欺騙像我這樣的「傳統」網絡開發人員,認爲這意味着它具有典型辦公室顯示器的寬度,這也可能報告爲1024px寬。 – ne1410s 2014-08-28 18:30:00

相關問題