2012-04-14 172 views
1

许多人使用以下方式检测iPad或iPhone。navigator.userAgent检测移动设备?

<script> 
var agent=navigator.userAgent.toLowerCase(); 

var useHTML5 = (agent.indexOf('iphone')!=-1 || agent.indexOf('ipad')!=-1); 

if (useHTML5){ 
document.write(""); 
} else{ 
document.write(""); 
} 
</script> 

苹果官方的方式来检测只针对iPad的iPhone是

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
    // iPad-specific code 
} else { 
    // iPhone-specific code 
} 

但是,如果我也想(反正至少Android设备)检查其他移动什么?

我是否应该使用Modernizr? 或者脚本 http://detectmobilebrowsers.com/

只是想补充一点,在我的特殊情况下使用FancyBox with VideoJS。

+2

也许你应该讨论一下你在这里真的关心什么?您是否在寻找某些手机具备的特定功能?您是否正在为较小的屏幕进行不同的网站设计?您是否想要检测某些HTML5功能?最后,您可以更好地检测您关心的确切特征(屏幕大小,功能可用性,性能特征等),而不是特定的浏览器类型。 – jfriend00 2012-04-14 21:55:01

+0

而且,某些浏览器可以更改他们的userAgent,使其无用 – petschekr 2012-04-14 21:55:36

回答

1

MobileESP项目在JavaScript中也有一系列用户代理检测方法,但MobileESP API: JavaScript非常有限,因为有些设备没有JavaScript支持,而服务器端检测是正确的方法。 DeviceAtlas Products将提供有关设备功能的更多信息,如果需要的话还有其价格标签...