什么是iPad用户代理?

从我收集的信息来看,iPad使用的是iPhone OS,但与iPhone和iPod touch的屏幕分辨率不同。 所以很多网站可能不得不改变他们的用户代理检测以适应iPad。

那么,任何能够访问iPad或iPad SDK的人都可以给我们提供用户代理string吗?

Mozilla / 5.0(iPad; U;像Mac OS X的CPU iPhone OS 3_2; en-us)AppleWebKit / 531.21.10(KHTML,如Gecko)Version / 4.0.4 Mobile / 7B314 Safari / 531.21.10

模拟器中 ,在iPad模式下:

Mozilla / 5.0(Macintosh; U; Intel Mac OS X 10_5_8; zh-cn)AppleWebKit / 531.9(KHTML,如Gecko)Version / 4.0.3 Safari / 531.9 (这是3.2testing版1)

Apple WebKit / 531.21.10(KHTML,如Gecko)Version / 4.0.4 Mobile / 7B334b Safari / 531.21.10 (用于3.2 beta版本3)

并在iPhone模式下:

Mozilla / 5.0(iPhone; U;像Mac OS X的CPU iPhone OS 3_2; en-us)AppleWebKit / 531.21.20(KHTML,如Gecko)Mobile / 7B298g

我不知道模拟器有多可靠,但是看起来你不能仅仅从用户代理string中检测设备是否是iPad。

(注意:我在Snow Leopard上是Safari的用户代理string

Mozilla / 5.0(Macintosh; U; Intel Mac OS X 10_6_2; zh-cn)AppleWebKit / 531.21.8(KHTML,如Gecko)版本/4.0.4 Safari / 531.21.10

从一个真实的设备:

Mozilla/5.0 (iPad; U; CPU OS OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B367 Safari/531.21.10

值得注意的是,当运行在networking应用程序模式(使用apple-mobile-web-app-capable元标记)用户代理从以下变化:

Apple WebKit / 531.21.10(KHTML,如Gecko)Version / 4.0.4 Mobile / 7B405 Safari / 531.21.10(Mozilla / 5.0(iPad; U; CPU OS 3_2_1,如Mac OS X)

至:

Mozilla / 5.0(iPad; U;像Mac OS X的CPU OS 3_2_1; en-us)AppleWebKit / 531.21.10(KHTML,如Gecko)Mobile / 7B405

4.3.5下的iPad 2:

Mozilla / 5.0(iPad; U;像Mac OS X的CPU OS 4_3_5; en-us)AppleWebKit / 533.17.9(KHTML,如Gecko)Version / 5.0.2 Mobile / 8L1 Safari / 6533.18.5

我说:

Mozilla / 5.0(iPad; U;像Mac OS X的CPU OS 4_3; da-dk)AppleWebKit / 533.17.9(KHTML,如Gecko)Version / 5.0.2 Mobile / 8F190 Safari / 6533.18.5

干得好!

Apple WebKit / 531.21.10(KHTML,如Gecko)Version / 4.0.4 Mobile / 7B334b Safari / 531.21.10 Mozilla / 5.0(iPad; U;像OS X的CPU OS 3_2; en-us)

似乎普遍认为,每一个移动苹果设备,iPhone,iPad或iPod使用包含“移动”和“Safari”的用户代理。

但是,使用最新的SDK(4.0.1)并阅读我的Rails服务器上的用户代理(使用request.env["HTTP_USER_AGENT"] ),我们永远不会获得'Safari'部分。

无论是从模拟器还是真实的设备发出请求,debugging还是释放,它总是如下所示:

Mozilla / 5.0(iPhone; U;像Mac OS X的CPU iPhone 3_1_2; de-de)AppleWebKit / 528.18(KHTML,像Gecko)Mobile / 7D11“

只是没有“safari”。 :所以我们必须使用'iPhone'部分,这是苹果不推荐的。

从模拟器3.2最后:

Apple WebKit / 531.21.10(KHTML,如Gecko)Version / 4.0.4 Mobile / 7B367 Safari / 531.21.10(Mozilla / 5.0(iPad; U; CPU OS 3_2,如Mac OS X; en-us)

iPad上的Safari用户代理stringiPhone OS 3.2 SDK beta 3:

Apple WebKit / 531.21.10(KHTML,如Gecko)Version / 4.0.4 Mobile / 7B334b Safari / 531.21.10 Mozilla / 5.0(iPad; U;像OS X的CPU OS 3_2; en-us)

更多信息: http : //developer.apple.com/library/safari/#technotes/tn2010/tn2262/_index.html

我认为值得一提的是,您通常不需要使用整个代理string,除非您find了需要将网站定制到特定模型的原因。

您可以检查代理string中的iPhone,iPad和iPod,并覆盖您的所有基地。

 if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i))) { appleMobileDevice = true; } else { appleMobileDevice = false; } 

仅适用于iPad

 Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10