似乎没有真正的标准来在用户代理的http标头中指定“screen-size”。
例如,下面的两个标题:
X-UP-devcap-screenpixels: 320x240
或
UA-pixels: 320x240
是两个常用的标题。 第二种是Windows Mobile设备主要使用的。 X-UP 看起来像来自UP浏览器网关。
另一种选择是
X-Screen-Width: 320
X-Screen-Height: 240
X-Screen-Width可能会成为一个标题。
我的问题是:
未来我们的“转码器”采用什么样的好标准?它不是一个完整的网络浏览器,但主要用于有限的网站。但它应该是Opera Mini / GWT等采用的标准。
Opera Mini和Google Web Transcoder都不会通过HTTP请求发送此信息。我猜他们希望网站在服务器端查找手机型号,从而查看屏幕宽度和高度。
我实际上发现了这个RFC 4229称为HTTP标头字段注册。它有点过时,并且是一个为修复提供帮助的任务。
如果我必须看到主要在现场使用的东西,我可能会最终使用“UA-Pixels”。
更多参考资料
答案 0 :(得分:3)
这比你想象的要糟糕。
经常是谎言。在IEMobile版本< 8(Windows Mobile< 6.1.4)上,640x480像素的设备仍然报告为320x240。此外,在大多数版本的IEMobile中,视图可能会在某种程度上进行缩放,因此您必须触及的设计大小与UA像素大小无关。UA像素:320x240
在IEMobile 8之前,液体布局的机会有限。然而,在WinMobile 6.5上的IEMobile 8中,您可以获得XGA分辨率,缩小,无论您喜欢与否。哦,没有办法从标题上嗅探IEM8-on-6.5和IEM8-on-6.1。
我不确定你的应用程序究竟是什么用途,但如果你的目标包含IEMobile的糟糕恐怖,那么输出完全符合屏幕大小的HTML / CSS几乎是不可能的。
答案 1 :(得分:0)
以下是常见屏幕分辨率标题列表:
X-UP-devcap-screenpixels
或
UA-pixels
或
X-JPHONE-DISPLAY
我查看了Google为他们的移动Adsense提供的代码片段,这些是他们到目前为止检查的三个代码片段。
答案 2 :(得分:0)
偶然发现这个问题,以为我会添加一种方法,目前已经在四分之三的浏览器中实现。
Client hints have about a 75% availability in browsers在撰写本文时,因此显然不能完全依赖它们,但对于确实支持它们的浏览器来说,它们可能会有用。
您无法获取屏幕高度,但可以获取宽度和设备像素比率(DPR)。
要使用客户端提示,您需要添加一个<meta>
标签
<meta http-equiv="Accept-CH" content="DPR, Width, Viewport-Width, Downlink">
或发送标题
Accept-CH: DPR, Width, Viewport-Width, Downlink
。
支持此功能的浏览器将随后发送每个后续请求的响应。
图片!
您可以依靠<picture>
元素并以不同的宽度和分辨率提供图像的所有不同变体,或者可以使用客户端提示来动态提供正确的图像大小(和格式)
GET myimage.jpg
DPR: 2
Viewport-Width: 1024
Accept: image/webp,image/*,*/*;q=0.8
然后我们可以动态提供正确尺寸的图像和最佳格式。
使用width
标头,您甚至可以根据台式机或移动设备决定要发送的样式表的哪一种版本(尽管您必须非常小心,并且可能不建议这样做,仅是关于如何操作的想法将其用于动态资源服务。