【问题标题】:What is the iOS 5.0 user agent string?什么是 iOS 5.0 用户代理字符串?
【发布时间】:2011-12-11 04:06:00
【问题描述】:

iOS 5.0 用户代理字符串是什么?

这是 iOS 4.0 用户代理:What is the iPhone 4 user-agent?

【问题讨论】:

  • SO answer 上,您可以找到一个通用正则表达式来检查给定的用户代理字符串是否是 iOS 5.0 字符串。

标签: iphone ios ipad ios5 user-agent


【解决方案1】:

iPhone:

Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3

iPad:

Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3

【讨论】:

  • 正确。从我的 iPhone:Mozilla/5.0(iPhone;CPU iPhone OS 5_0 像 Mac OS X)AppleWebKit/534.46(KHTML,像 Gecko)版本/5.1 Mobile/9A334 Safari/7534.48.3
【解决方案2】:

这个网站好像keep a complete list that's still maintained

iOS 2.0 - 5.1.1(迄今为止)的 iPhone、iPod Touch 和 iPad。

您确实需要从页面列中列出的信息中组装完整的用户代理字符串。

【讨论】:

【解决方案3】:

我在user agent string 找到了更完整的列表。顺便说一句,这个网站不仅仅是 iOS 用户代理字符串。此外,主页将为您“分解”当前浏览器的用户代理字符串。

【讨论】:

【解决方案4】:

修复了我的代理字符串评估,方法是清除 LOWERCASE “iphone os 5_0”而不是“iPhone OS 5_0”的字符串。现在,当大写擦除失败时,我正在正确地将 iOS 5 特定类分配给我的 html。

【讨论】:

  • 好吧,我个人会检测到的不仅仅是 iPhone,因为在上面的示例中,您没有将 iOS 5 特定代码呈现给 iPad 和 iPod touch。您可能还想考虑的是版本会在某个时候增加。我的建议可能对大多数人来说是显而易见的 - 首先检测苹果移动设备,即 iPad/iPod/iPhone,然后,如果是这种情况,解析出......不是 iOS 而是可能是浏览器的版本,即在这种情况下版本/5.1 将是指标。一旦您知道版本,您将在“不低于”条件下应用您的代码。
【解决方案5】:

我使用以下方法来检测不同的移动设备、视口和屏幕。对我来说效果很好,可能对其他人有帮助:

var pixelRatio = window.devicePixelRatio || 1;

var viewport = {
    width: window.innerWidth,
    height: window.innerHeight
};

var screen = {
    width: window.screen.availWidth * pixelRatio,
    height: window.screen.availHeight * pixelRatio
};

var iPhone = /iPhone/i.test(navigator.userAgent);
var iPhone4 = (iPhone && pixelRatio == 2);
var iPhone5 = /iPhone OS 5_0/i.test(navigator.userAgent);
var iPad = /iPad/i.test(navigator.userAgent);
var android = /android/i.test(navigator.userAgent);
var webos = /hpwos/i.test(navigator.userAgent);
var iOS = iPhone || iPad;
var mobile = iOS || android || webos;

window.devicePixelRatio 是设备上的物理像素和与设备无关的像素 (dip) 之间的比率。 window.devicePixelRatio = 物理像素/下降。

更多信息here

【讨论】:

  • 感谢您的回复,但请注意,这不是一种有效的方法,并且某些设备版本会丢失。例如,我刚刚检查了我古老的 iPad 1 上的用户代理,它显示“...iPad;CPU OS 5_1_1...”。您的任何变量都不会捕捉到这一点。你需要一个像var iOS5 = /(iPhone|iPad).*OS 5_.*/i.test(navigator.userAgent);这样的正则表达式
猜你喜欢
  • 2012-08-31
  • 1970-01-01
  • 1970-01-01
  • 2013-06-27
  • 2011-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多