如何检测运行Windows Phone 8的HiDPI设备?
我正在测试的手机是诺基亚Lumia 920,它有一个4.5英寸1280×768的屏幕(即> 300 dpi)。 IE支持CSS中的min-resolution
但不支持min-device-pixel-ratio
。使用此device pixel density test,Lumia报告 96 dpi 。这远远低于实际的屏幕分辨率,并且将被视为常规的非HiDPI设备。
由于IE还没有(还)支持JavaScript中的window.devicePixelRatio
,我无法找到准确检测Lumia能够显示HiDPI图像的方法。
答案 0 :(得分:8)
查看http://timkadlec.com/2013/01/windows-phone-8-and-device-width/
理论上(我没有手机对此进行测试)如果您将以下所有内容添加到页面中,则应该授予您为Windows Phone 8和Windows 8设备获取有效DPR的能力。
HTML元视口(当前/传统的非W3C实现)
<meta name="viewport" content="width=device-width" />
CSS @viewport(当前/未来的W3C草案实施):
@-webkit-viewport{width:device-width}
@-moz-viewport{width:device-width}
@-ms-viewport{width:device-width}
@-o-viewport{width:device-width}
@viewport{width:device-width}
Javascript在Windows Phone 8中禁用元视口的古怪@viewport覆盖:
if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
var msViewportStyle = document.createElement("style");
msViewportStyle.appendChild(
document.createTextNode(
"@-ms-viewport{width:auto!important}"
)
);
document.getElementsByTagName("head")[0].
appendChild(msViewportStyle);
}
然后screen.width/document.documentElement.clientWidth
应该是all mobile browsers that correctly implement screen.width
window.devicePixelRatio
的有效近似值