我正试图弄清楚如何通过Javascript获取设备屏幕的物理尺寸。到目前为止,我的结论是,目前这是不可能的,但我希望有人可以证明我错了:)。
到目前为止,我试图通过查找设备的DPI来获取此信息,但似乎没有办法在这里获得正确的值,因为我测试的所有设备(一些HDPI和XHDPI Android设备,iPhone4S, iPad 2和iPad 3)报告96DPI。
获得我尝试的DPI的第一种方法是互联网上随处可见的方法:创建CSS宽度为div
的{{1}},获取其1in
或{{ 1}}并且有你的DPI。不起作用,所有设备报告96。
第二种方法是使用resolution media query,类似于:
clientWidth
我认为这是一个聪明的解决方案,但不幸的是,它也会返回96.
还有什么可以尝试的吗?
答案 0 :(得分:10)
96“DPI”是一个与现实无关的网络标准。它测量的英寸最好被认为是“逻辑”英寸,它对应于字体度量和CSS测量(可以包括点和英寸)。排版中的“点”定义为1/72英寸,但屏幕停止时始终为72 DPI。因此,现在所有的CSS点真正意味着96点字体高72像素。 (这是合乎逻辑的像素,因为这个问题现在被hi-DPI屏幕进一步混淆了。)
无论如何,大多数本机操作系统都不知道他们真正的物理屏幕尺寸,因此他们甚至没有关于这些信息的信息,他们可以通过浏览器向Web应用程序公开。你问的是不可能的。
答案 1 :(得分:0)
看看this post。 它完成了:
<meta name="viewport" content="width=device-width, target-densitydpi=device-dpi">