How do I detect HiDPI devices running Windows Phone 8?
The phone I'm testing is the Nokia Lumia 920, which has a 4.5-inch 1280 × 768 screen (i.e. > 300 dpi). IE supports min-resolution
in CSS but not min-device-pixel-ratio
. Using this device pixel density test, the Lumia reports 96 dpi. This is far lower than the actual screen resolution, and would be considered a regular non-HiDPI device.
Since IE doesn't (yet) support window.devicePixelRatio
in JavaScript, I can't find a way to accurately detect the Lumia as capable of displaying HiDPI images.
Check out http://timkadlec.com/2013/01/windows-phone-8-and-device-width/
Theoretically (I don't have a phone to test this on) if you add all of the following to your page you should be granted the ability to get a valid DPR for both Windows Phone 8 and Windows 8 devices.
HTML meta viewport (current/legacy non-W3C implementations)
CSS @viewport (current/future W3C draft implementations) :
Javascript to disable the quirky @viewport override of meta viewport in Windows Phone 8 :
Then
screen.width/document.documentElement.clientWidth
should be a valid approximation ofwindow.devicePixelRatio
for all mobile browsers that correctly implement screen.width