有人在SO上提出了一个关于iPhone 4用户代理和iOS 5.0用户代理的问题。
我使用以下内容来检测不同的移动设备、视口和屏幕。
我想要区分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
是设备上物理像素与设备独立像素(dips)之间的比率。 window.devicePixelRatio
= 物理像素 / dips。
更多信息在这里。