在本文中,您将学习如何使用javascript / jQuery来检测iPhone / iPod,如何使用javascript将iPhone用户重定向到您网站的移动版本,以及使用服务器端PHP代码段来重定向访问者的另一种更好的方法。
围绕jQuery的最新话题是即将推出的jQuery mobile –对移动设备的支持。当前的jQuery核心可以在iPhone和iPod touch浏览器上正常工作,我们大多数人已经创建了网站的移动版本,并为他人开发或转换了网站。基本上,jQuery已经在iPhone和iPod touch设备上使用。事不宜迟……
// 返回布尔值TRUE / FALSE function isiPhone(){ return ( (navigator.platform.indexOf("iPhone") != -1) || (navigator.platform.indexOf("iPod") != -1) ); }
您可能想知道,如果jQuery在这两个网站上都能正常运行,为什么我们甚至需要检测我们的网站是否在iPhone Safari或正常的台式机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如Mac OS X; zh)AppleWebKit / 420 +(KHTML如Gecko)
版本/3.0 Mobile / 1A543a Safari / 419.3
iPod Touch的用户代理字符串
Mozilla / 5.0(iPod; U; CPU,例如Mac OS X; en)AppleWebKit / 420.1(KHTML,例如Gecko)
版本/3.0移动版/ 3A101a Safari / 419.3
* /
我想提醒您,有时候您的访问者不希望被重定向到您网站的移动版本。因此,您的移动版本应始终包含指向非移动网站的链接。可以重写以上脚本,以检查用户是否选择了不重定向。设置cookie或URL参数。