什么是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