问题
在Chrome的Android版本中,有没有一种安全的方法可以获取实际正确的屏幕物理尺寸?如果需要,旧版本的Chrome和Android可以不考虑。
先前研究
关于从javascript(或css)内部获取设备的实际物理屏幕尺寸,stackoverflow上有许多死胡同的问题。似乎在HTML API标准化和实际浏览器实现之间没有一致性,更不用说浏览器实现依赖于操作系统API,而后者又依赖于提供正确信息的硬件了。
之前的一些答案是过时的(例如 2011 年左右),他们假定当时存在某种卓越的像素密度,因此毫无用处。其他的则与 WebKit 相关,而 Chrome blink 可能已经在 Chrome 中取代了 WebKit。
我想通过将事情限制在仅针对Chrome的Android版本上来探索一个简单的解决方案。
注意事项
这完全是关于浏览器内部的javascript(或css)解决方案,而非本地应用程序的解决方案。
window.screenDensity
的JavaScript属性,该属性包含设备每英寸的物理像素数,你和我(matt)可以从中获取信息。window.screenHeight
和window.screenWidth
以物理毫米为单位也很好。 - trusktr