检测HiDPI Windows Phone 8设备

时间:2013-02-01 20:26:59

标签: internet-explorer windows-phone-8 high-resolution

如何检测运行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图像的方法。

1 个答案:

答案 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的有效近似值