我试图弄清楚如何通过Javascript获取设备屏幕的物理尺寸.到目前为止,我的结论是,它目前是不可能的,但我希望有人可以证明我错了:).
到目前为止,我已经尝试通过查找设备的DPI来获取此信息,但似乎没有办法在这里获得正确的值,因为我测试的所有设备(一些HDPI和XHDPI Android设备,iPhone4S,iPad 2和iPad 3)报告96DPI.
获得我尝试过的DPI的第一种方法是你可以在互联网上随处找到的方法:div用CSS宽度创建一个1in,得到它clientWidth或者offsetWidth你的DPI.不起作用,所有设备报告96.
第二种方法是使用分辨率媒体查询,类似于:
for (var i=90; i < 400; i++) {
if (matchMedia('(resolution: ' + i + 'dpi)').matches) {
return i;
}
}
Run Code Online (Sandbox Code Playgroud)
我认为这是一个聪明的解决方案,但不幸的是,它也会返回96.
还有什么可以尝试的吗?
我一直致力于为移动设备制作CMS导出有效内容.其中一个我们遇到的问题是,新的设备,如iPhone4的拥有更高分辨率的显示,所以我们需要找到一种方法来正确地呈现在使用一个300DPI显示旧设备和新的同一页面.到目前为止,我们使用JavaScript和window.devicePixelRatio为了获得dpi的分辨率,但事实证明,这不是在歌剧(?)和Opera移动工作.
任何建议或可能是不同的方法?我研究了一下但是找不到一些东西.
谢谢