移动设备分辨率(宽度、高度)、屏幕尺寸和页眉

8

看起来在用户代理的http头中,没有真正的规范来指定“屏幕尺寸”。

例如,下面两个头文件:

X-UP-devcap-screenpixels: 320x240

或者

UA-pixels: 320x240

这里有两个常用的头部信息。

第二个主要被Windows Mobile设备使用。

X-UP看起来是来自于UP浏览器网关。

另一个选项是:

X-Screen-Width: 320
X-Screen-Height: 240

X-Screen-Width可以成为一个上游标头。

我的问题是:

我们的“转码器”应该采用什么样的标准?它不是完整的Web浏览器,而是主要针对有限的网站。但应该是Opera Mini / GWT等采用的标准。

Opera Mini和Google Web Transcoder都没有通过HTTP请求发送此信息。我想他们希望站点在服务器端查找手机型号,从而确定屏幕宽度和高度。

我实际上找到了这个名为HTTP Header Field Registrations的RFC 4229。它已经有点过时了,并且很难为其做出贡献。

如果我必须看看在领域中使用的大多数内容,我可能最终会选择“UA-Pixels”。

更多参考资料

  • 一些设备(主要是Windows Mobile)在用户代理标头中具有320x240的值

另一个好的资源:http://mobiforge.com/developing/blog/useful-x-headers 由于新用户只能发布1个链接,我无法在上面发布此链接。 - David d C e Freitas
1
我在一家内容提供商公司工作,我们内部使用WURFL数据库来确定特定设备的屏幕大小。 - ariefbayu
没错,但我们拥有的是客户端->代理->站点的结构。我们拥有客户端和代理,因此我们希望通过提供宽度和高度来使请求的站点更容易,以便每个站点不必重新实现wurfl查找和维护等操作。因为我们已经在我们的客户端中拥有设备信息。(JME等) - David d C e Freitas
3个回答

6

比你想象的要糟糕。

UA像素:320x240

通常是个谎言。在IEMobile版本<8(Windows Mobile<6.1.4)的设备上,具有640x480像素的设备仍会报告自己为320x240。此外,在大多数IEMobile版本中,视图可以缩放到某种程度,因此必须达到的设计尺寸与UA像素大小无关。

在IEMobile 8之前,流体布局的机会很有限。然而,在WinMobile 6.5上的IEMobile 8中,您将获得约XGA分辨率,不管您是否喜欢它,都会缩小。噢,没有办法从标头中嗅探IEM8-on-6.5与IEM8-on-6.1的区别。

我不确定您的应用程序的目的是什么,但是如果您的目标包括可怕的IEMobile,则几乎不可能输出完全按照屏幕大小呈现的HTML / CSS。


目的更多是为了正确获取图像宽度(大多数设备数据库最常见的目的)。 但它更像是 Opera Mini,将 HTML 转换成二进制标记语言,然后由客户端解释。 - David d C e Freitas

1

偶然发现这个问题,想要添加一种方法来实现此功能,目前大约有四分之三的浏览器已经实现了。

客户端提示

在编写本文时,大约有75%的浏览器支持客户端提示,因此它们显然不能在所有情况下都可靠,但对于支持它们的浏览器,它们可能很有用。

您无法获取屏幕高度,但可以获取宽度和设备像素比(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”头,您甚至可以基于桌面或移动设备决定发送哪个样式表的变体(虽然您必须非常小心,这可能不被建议,只是一个关于如何将其用于动态资源服务的想法)。

0

这里是常见屏幕分辨率的列表:

X-UP-devcap-screenpixels

或者

UA-pixels

或者

X-JPHONE-DISPLAY

我查看了谷歌移动广告提供的代码片段,目前他们检查了以下三个方面。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接