10

Windows Phone 8 を実行している HiDPI デバイスを検出するにはどうすればよいですか?

私がテストしている電話は Nokia Lumia 920 で、4.5 インチ 1280 × 768 画面 (つまり > 300 dpi) です。IE はmin-resolutionCSS でサポートしていますが、サポートしていませんmin-device-pixel-ratio。このデバイスのピクセル密度テストを使用すると、Lumia は96 dpiを報告します。これは実際の画面解像度よりもはるかに低く、通常の非 HiDPI デバイスと見なされます。

IE は (まだ) window.devicePixelRatioJavaScript をサポートしていないため、Lumia が HiDPI 画像を表示できるものとして正確に検出する方法を見つけることができません。

4

1 に答える 1

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}

Windows Phone 8 でメタ ビューポートの風変わりな @viewport オーバーライドを無効にする Javascript:

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 を正しく実装するすべてのモバイル ブラウザーscreen.width/document.documentElement.clientWidth有効な概算になります。window.devicePixelRatio

于 2013-02-02T04:16:04.130 に答える