jQuery – iPhone / iPod检测
在本文中,您将学习如何使用javascript/jQuery来检测iPhone/iPod,如何使用javascript将iPhone用户重定向到您网站的移动版本,以及使用服务器端PHP代码段来重定向访问者的另一种更好的方法。
围绕jQuery的最新话题是即将推出的jQuerymobile–对移动设备的支持。当前的jQuery核心可以在iPhone和iPodtouch浏览器上正常工作,我们大多数人已经创建了网站的移动版本,并为他人开发或转换了网站。基本上,jQuery已经在iPhone和iPodtouch设备上使用。事不宜迟……
//返回布尔值TRUE/FALSE function isiPhone(){ return ( (navigator.platform.indexOf("iPhone") != -1) || (navigator.platform.indexOf("iPod") != -1) ); }
您可能想知道,如果jQuery在这两个网站上都能正常运行,为什么我们甚至需要检测我们的网站是否在iPhoneSafari或正常的台式机Safar上运行。好吧,您可能需要利用Safari特定的CSS功能,并且需要了解当前的浏览器是否是Safari,那么您可能还需要考虑减少资源消耗大的功能,例如网站iPhone版本的动画。
重定向iPhone和iPod用户
您也可以使用以下脚本将iPhone和iPod用户重定向到您网站的移动版本:
//重定向iPhone/iPod访问者 function isiPhone(){ return ( (navigator.platform.indexOf("iPhone") != -1) || (navigator.platform.indexOf("iPod") != -1) ); } if(isiPhone()){ window.location= "mob.example.com"; }
例如:如果您的网站是www.example.com,并且在mob.example.com上具有移动版本,则将以下脚本放入www.example.com。
使用PHP重定向iPhone用户
最好在服务器端检测并重定向iPhone用户。这是用于重定向iPhone用户的PHP代码:
//重定向iPhone/iPod访问者 if(strpos($_SERVER['HTTP_USER_AGENT'], 'iPhone') || strpos($_SERVER['HTTP_USER_AGENT'], 'iPod')){ header("Location: http://mob.example.com"); }
用户代理字符串供您参考:
/*
适用于iPhone的用户代理字符串
Mozilla/5.0(iPhone;U;CPU如MacOSX;zh)AppleWebKit/420+(KHTML如Gecko)
版本/3.0Mobile/1A543aSafari/419.3
iPodTouch的用户代理字符串
Mozilla/5.0(iPod;U;CPU,例如MacOSX;en)AppleWebKit/420.1(KHTML,例如Gecko)
版本/3.0移动版/3A101aSafari/419.3
*/
我想提醒您,有时候您的访问者不希望被重定向到您网站的移动版本。因此,您的移动版本应始终包含指向非移动网站的链接。可以重写以上脚本,以检查用户是否选择了不重定向。设置cookie或URL参数。