如何使用 javascript 获得真实的 PPI(每英寸像素)设备分辨率?
设备和预期值的一些示例:
- iMac 27 英寸:109ppi
- iPad:132ppi
- 19 英寸 1440x900 屏幕:89ppi
- ...
最佳答案
直接在操作系统上运行 native 应用程序是获取存储在 EDID 中的客户端显示器物理特性的唯一可靠方法。目前没有主流浏览器引擎通过任何 Web API 提供此信息,并且在可预见的 future 很可能不会。 然而,有几种方法可以将密度近似到不同的精度水平。
所有现代浏览器都通过 devicePixelRatio、deviceXDPI 等属性给出像素密度的提示,这些属性基本上告诉您客户端进行了多少缩放(相对于 1.0x 操作系统默认缩放)。如果您只针对少数几款设备(例如 Apple 系列),那么您或许能够分辨出哪个是哪个,尽管 Apple 并没有留下任何线索来区分 iPad mini 和普通 iPad。
另一种方法是使用设备数据库或专有软件来分析客户端的“用户代理字符串”以实现对设备的猜测,然后查找与该设备关联的 DPI(如果它存在于他们的大数据库中) .通过利用复杂的数据挖掘算法,昂贵的专有系统可能具有更高的准确性,但无论如何,像这样的任何系统都需要不断的手动更新,并且仍然对客户端操作保持开放,因为它们可以更改其用户代理字符串(“以桌面模式查看此网站” )
没有可用的信息真是不幸的情况。我花了无数时间研究制作 PPI 感知 Web 应用程序的任何可能方法。
也许有一天有人能够说服 WebKit、Mozilla 或 Microsoft 的人们允许人们为增强现实等创建 PPI 感知 Web 应用程序......唉
关于javascript - 在javascript中获取设备PPI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22861287/