118

据我所知,iPad 使用的是 iPhone OS,但屏幕分辨率与 iPhone 和 iPod touch 不同。如此多的网站可能不得不改变他们的用户代理检测以适应 iPad。

那么,任何有权访问 iPad 或 iPad SDK 的人都可以给我们用户代理字符串吗?

4

15 回答 15

127

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

于 2010-02-11T22:56:05.240 回答
32

(差不多 10 年后……)

iOS 13开始,iPad 的用户代理已更改为 Mac OS,例如:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, like Gecko) 版本/13.0 Safari/605.1.15

于 2019-07-07T14:28:00.347 回答
28

模拟器中,在 iPad 模式下:

Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-us) AppleWebKit/531.9 (KHTML, like Gecko) 版本/4.0.3 Safari/531.9 (这是针对 3.2 beta 1 的)

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 (这是 3.2 beta 3)

在 iPhone 模式下:

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

我不知道模拟器有多可靠,但您似乎无法仅从用户代理字符串检测设备是否为 iPad。

(注意:我在 Snow Leopard 上,Safari 的用户代理字符串是

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

)

于 2010-01-28T11:55:14.373 回答
15

从真实设备:

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

于 2010-05-29T19:09:26.333 回答
9

值得注意的是,在 web-app 模式下运行时(使用apple-mobile-web-app-capable元标记),用户代理从以下位置更改:

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

到:

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

于 2010-07-25T20:47:10.400 回答
7

4.3.5 下的 iPad 2:

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

于 2011-09-08T15:41:12.577 回答
6

我的说:

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

于 2011-04-03T17:31:31.037 回答
4

干得好!

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

于 2012-06-04T22:24:01.570 回答
3

似乎普遍的共识是,每个移动苹果设备、iphone、ipad 或 ipod 都使用包含“Mobile”和“Safari”的用户代理。

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

无论请求是来自模拟器还是真实设备,调试或发布,它总是看起来像这样:

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

只是没有'Safari'。:-( 所以我们必须使用“iPhone”部分来确定。这是苹果不推荐做的事情。

于 2010-07-29T12:30:10.547 回答
3

从 iOS 13 开始,找不到“iPad”,我使用这个 js current-device,它可以工作。

这个核心:

const iPadOS13Up = navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1

https://github.com/matthewhudson/current-device/blob/master/src/index.js#L55

你可以看到你死了类型: http: //matthewhudson.github.io/current-device/

于 2020-05-09T03:29:44.577 回答
1

从模拟器 3.2 最终版:

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/7B367 Safari/531.21.10

于 2010-05-23T12:01:04.607 回答
1

iPhone OS 3.2 SDK beta 3 中 iPad 用户代理字符串上的 Safari:

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

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

于 2011-03-29T19:11:36.897 回答
0

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

您可以在代理字符串中检查 iPhone、iPad 和 iPod,并覆盖您的所有基地。

if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i))) {
    appleMobileDevice = true;
}
else {
    appleMobileDevice = false;
}
于 2013-09-05T09:55:26.700 回答
0

由于 Apple 非常有帮助地在 iOS 中更改了他们的 userAgent 字符串,因此您不能再可靠地为 ipad/iphone 使用正则表达式。

我建议为旧版和当前 iOS 版本 ( /i(?:pad|phone)|mac os/i) 使用正则表达式的组合,并额外检查navigator.maxTouchPoints. maxTouchPoints 在 Macbook 上始终为 0,但在 iPad、iPhone 上大于 0(通常为 5)。

如果您进一步需要区分 iPad 和 iPhone,您可以使用window.outerWidthwindow.outerHeight获取视口大小和方向。这只会有很大帮助,因为一些较大的 iPhone 的视口比最小的 iPad 还要大。

谢谢,苹果!

于 2021-10-28T20:16:51.883 回答
-1

仅适用于 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
于 2014-08-27T10:04:38.080 回答