【发布时间】:2023-04-06 23:57:02
【问题描述】:
问题
是否有一种安全的方法可以在 Android 上的 Chrome 中获得实际正确的屏幕物理尺寸?如有必要,可以将旧版本的 Chrome 和 Android 排除在外。
先前的研究
stackoverflow 上有许多关于从 javascript(或 css)中获取设备的实际物理屏幕尺寸的死胡同问题。似乎 html api 标准化和实际浏览器实现之间没有融合,更不用说浏览器实现依赖于 OS api,而 OS api 又依赖于提供正确信息的硬件。
顺便说一句,一些先前的答案在假设当时盛行的某个像素密度方面是神秘的(2011 年等),因此毫无用处。其他与 webkit 有关,而 Chrome blink 可能已经取代了 chrome (?) 中的 webkit。
我想通过将事物限制为仅在 Android 上使用 Chrome 来探索一个简单解决方案的存在。
注意
这都是关于浏览器内部的 javascript(或 css)解决方案,而不是原生应用程序的解决方案。
【问题讨论】:
-
那是完全错误的。我的用户界面想知道用户看到的按钮应该有多大。作为一名代码开发人员,你可能想太多了 ;)
-
例如,按钮的大小不应该是视口的百分比,而是应该大到可以触摸。我不确定这对高质量设计有何意义。
-
@matt 是绝对正确的。 Web UX/UI 最重要的方面之一,尤其是在胖手指的世界中,是确保按钮既适合指针(在本例中为手指),也适合观看距离的大小从屏幕到眼睛。移动设备的这一新领域使问题变得复杂,因此物理屏幕尺寸检测更为重要。
-
我 100% 支持你@matt。我不明白为什么 Mozilla 和 Google 不能只给我们一个 JavaScript 属性,例如
window.screenDensity,它包含你和我的设备每英寸的 物理 像素,马特,可以从那里获取它.window.screenHeight和window.screenWidth以物理毫米为单位也不错。 -
@Kinlan 物理屏幕尺寸通常很重要。这就是为什么原生开发目前比 Web 开发更强大的原因。例如,在原生环境中,我可以在所有现代设备上制作一个 1(现实世界)英寸宽的按钮。据我所知,这在网络环境中目前是不可能的。我错过了什么吗?
标签: android javascript google-chrome