当前位置:  开发笔记 > 编程语言 > 正文

在javascript中获取设备PPI

如何解决《在javascript中获取设备PPI》经验,为你挑选了1个好方法。

如何用javascript获得真正的PPI(每英寸像素数)设备分辨率?

预期的设备和价值的一些例子:

iMac 27英寸:109ppi

iPad:132ppi

19英寸1440x900屏幕:89ppi

...

Amann Malik.. 6

直接在操作系统上运行本机应用程序是获取存储在EDID中的客户端监视器的物理特性的唯一可靠方法.目前没有主流浏览器引擎通过任何Web API提供此信息,并且在可预见的将来可能不会.然而,有几种方法可以将密度近似到不同的精度水平.

所有现代浏览器都通过devicePixelRatio,deviceXDPI等属性提供像素密度的提示,它基本上告诉您客户端进行了多少缩放(相对于1.0x操作系统默认缩放).如果您只针对像Apple系列这样的设备,那么您可能能够分辨哪一个是哪个设备,尽管Apple没有留下一条线索来辨别常规iPad上的iPad mini.

另一种方法是使用设备数据库或专有软件来分析客户端的"用户代理字符串",以实现设备的命中或猜测,然后查找与该设备相关的DPI(如果它存在于其大数据库中).通过利用复杂的数据挖掘算法,昂贵的专有系统可能具有更高的准确性,但无论这样的任何系统都需要持续的手动更新,并且仍然可以保持对客户端操作的开放,因为他们只需更改其用户代理字符串("在桌面模式下查看此网站" )

没有这些信息,这真是一个不幸的情况.我花了无数个小时研究任何可能的方法来制作一个PPI感知的Web应用程序.

也许有一天,有人能够说服WebKit或Mozilla或微软的人们让人们为增强现实创建PPI感知的Web应用程序......叹息



1> Amann Malik..:

直接在操作系统上运行本机应用程序是获取存储在EDID中的客户端监视器的物理特性的唯一可靠方法.目前没有主流浏览器引擎通过任何Web API提供此信息,并且在可预见的将来可能不会.然而,有几种方法可以将密度近似到不同的精度水平.

所有现代浏览器都通过devicePixelRatio,deviceXDPI等属性提供像素密度的提示,它基本上告诉您客户端进行了多少缩放(相对于1.0x操作系统默认缩放).如果您只针对像Apple系列这样的设备,那么您可能能够分辨哪一个是哪个设备,尽管Apple没有留下一条线索来辨别常规iPad上的iPad mini.

另一种方法是使用设备数据库或专有软件来分析客户端的"用户代理字符串",以实现设备的命中或猜测,然后查找与该设备相关的DPI(如果它存在于其大数据库中).通过利用复杂的数据挖掘算法,昂贵的专有系统可能具有更高的准确性,但无论这样的任何系统都需要持续的手动更新,并且仍然可以保持对客户端操作的开放,因为他们只需更改其用户代理字符串("在桌面模式下查看此网站" )

没有这些信息,这真是一个不幸的情况.我花了无数个小时研究任何可能的方法来制作一个PPI感知的Web应用程序.

也许有一天,有人能够说服WebKit或Mozilla或微软的人们让人们为增强现实创建PPI感知的Web应用程序......叹息

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有