据我所知,iPad使用的是iPhone OS,但屏幕分辨率与iPhone和iPod touch不同。因此,许多站点可能必须更改其用户代理检测以适应iPad。
那么,有权使用iPad或iPad SDK的任何人都可以给我们用户代理字符串吗?
据我所知,iPad使用的是iPhone OS,但屏幕分辨率与iPhone和iPod touch不同。因此,许多站点可能必须更改其用户代理检测以适应iPad。
那么,有权使用iPad或iPad SDK的任何人都可以给我们用户代理字符串吗?
Answers:
Mozilla / 5.0(iPad; U; CPU iPhone OS 3_2,例如Mac OS X; zh-cn)AppleWebKit / 531.21.10(KHTML,例如Gecko)版本/4.0.4移动版/ 7B314 Safari / 531.21.10
在iPad模式下的模拟器中:
Mozilla / 5.0(Macintosh; U; Intel Mac OS X 10_5_8; zh-cn)AppleWebKit / 531.9(KHTML,like Gecko)Version / 4.0.3 Safari / 531.9(这是针对3.2 beta 1的)Mozilla / 5.0(iPad; U; CPU OS 3_2,例如Mac OS X; zh-cn)AppleWebKit / 531.21.10(KHTML,例如Gecko)版本/4.0.4移动版/ 7B334b Safari / 531.21.10 (适用于3.2 Beta) 3)
在iPhone模式下:
Mozilla / 5.0(iPhone; U; CPU iPhone OS 3_2,例如Mac OS X; zh-cn)AppleWebKit / 531.21.20(KHTML,例如Gecko)移动设备/ 7B298g
我不知道模拟器的可靠性如何,但是似乎您无法仅通过用户代理字符串来检测设备是否为iPad。
(注意:我在Snow Leopard上,Safari的用户代理字符串是
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
)
(近10年后...)
从iOS 13开始,iPad的用户代理已更改为Mac OS,例如:
Mozilla / 5.0(Macintosh; Intel Mac OS X 10_15)AppleWebKit / 605.1.15(KHTML,如Gecko)版本/13.0 Safari / 605.1.15
值得注意的是,当在Web应用模式下运行(使用apple-mobile-web-app-capable
meta标记)时,用户代理会从以下位置更改:
Mozilla / 5.0(iPad; U; CPU OS 3_2_1,例如Mac OS X; zh-cn)AppleWebKit / 531.21.10(KHTML,例如Gecko)版本/4.0.4移动版/ 7B405 Safari / 531.21.10
至:
Mozilla / 5.0(iPad; U; CPU OS 3_2_1,例如Mac OS X; zh-cn)AppleWebKit / 531.21.10(KHTML,例如Gecko)移动设备/ 7B405
干得好!
Mozilla / 5.0(iPad; U; CPU OS 3_2,例如Mac OS X; zh-cn)AppleWebKit / 531.21.10(KHTML,例如Gecko)版本/4.0.4移动版/ 7B334b Safari / 531.21.10
似乎已经普遍同意,每个移动Apple设备,iphone,ipad或ipod都使用包含“移动”和“ Safari”的用户代理。
但是,使用最新的SDK(4.0.1)并读取我的Rails服务器上的用户代理(使用request.env["HTTP_USER_AGENT"]
),我们永远都不会获得“ Safari”部分。
不管是从模拟器发出请求还是从真实设备发出,调试还是释放请求,它总是看起来像这样:
Mozilla / 5.0(iPhone; U; CPU iPhone OS 3_1_2,例如Mac OS X; de-de)AppleWebKit / 528.18(KHTML,例如Gecko)Mobile / 7D11”
只是没有“ Safari”。:-(因此,我们必须使用“ iPhone”部分来确保。这是苹果不建议这样做的做法。
从Simulator 3.2 final:
Mozilla / 5.0(iPad; U; CPU OS 3_2,例如Mac OS X; zh-cn)AppleWebKit / 531.21.10(KHTML,例如Gecko)版本/4.0.4移动版/ 7B367 Safari / 531.21.10
iPhone OS 3.2 SDK beta 3中iPad用户代理字符串上的Safari:
Mozilla / 5.0(iPad; U; CPU OS 3_2,例如Mac OS X; zh-cn)AppleWebKit / 531.21.10(KHTML,例如Gecko)版本/4.0.4移动版/ 7B334b Safari / 531.21.10
更多信息:http : //developer.apple.com/library/safari/#technotes/tn2010/tn2262/_index.html
从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/