dou*_*aci 6 ruby ruby-on-rails device-detection
我一直在做一些研究,我想我已经知道了答案,但我想知道是否有任何方法可以在不使用javascript或依赖CSS3媒体查询的情况下获得设备的屏幕尺寸和像素密度.
本质上,我正在研究获取屏幕分辨率和像素密度所需的内容,以便服务器可以决定在URI请求中向服务器提供哪个图像.
到目前为止,我还没有找到任何说这甚至可能的东西,但我觉得嘿,为什么不问?
我不完全赞同上述正确答案.实际上,这个答案在许多情况下是正确的......但理论上并非如此.通常,对Web服务器的请求包含User-Agent字段,理论上,该字段可用于识别有关设备屏幕分辨率和属性的信息.
Web请求不会首先通过客户端.它们传递给服务器,然后服务器向客户端提供页面,以便服务器首先获取请求...例如,Ruby on Rails通过动作控制器接收请求到资源,然后将页面提供给响应.
查看示例UA解析器,例如:https://github.com/visionmedia/user-agent
我的计算机发送的示例用户代理是:
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.11 (KHTML, like enter code here`Gecko) Chrome/17.0.963.83 Safari/535.11
Run Code Online (Sandbox Code Playgroud)
我认为很有可能通过服务器很好地猜测我的屏幕分辨率(DPI等)是什么.当然,您需要一个可供参考的设备信息表.
对于移动设备,它变得更加容易.如果User-Agent是iPad的移动游戏:
Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10
Run Code Online (Sandbox Code Playgroud)
您可以非常确定地了解服务器上的屏幕分辨率.您甚至可以通过该信息了解浏览器的高度和宽度.我怀疑许多移动设备如Android或Win Mo也是如此.
总而言之,我同意这样做是不切实际的,但我也不同意.
我相信Facebook已经开展了一个主要的项目编目设备和屏幕分辨率并使其开源,因为他们在创建Facebook移动应用程序时遇到了类似的问题,例如他们必须编制所有移动浏览器渲染器之间的所有差异,以便他们可以定制客户端应用程序每个案例.也许该项目在理论上可能有必要的信息来做到这一点.
| 归档时间: |
|
| 查看次数: |
9395 次 |
| 最近记录: |