Android模拟器浏览器检测

我正在开发一个网站的移动版本。 我目前正在使用此Javascript来检测并重定向用户:

if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/Android/i)) || (navigator.userAgent.match(/iPod/i))) { window.location = "http://sitename.com/m/"; } 

与iPhone和iPod配合得很好,但Android没有成功。 我在Eclipse中使用Android模拟器。 我没有Android小工具来实际测试它。

难道我做错了什么? 谁有同样的问题?

您应该使用location.replace而不是window.location

例:

 if( (navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/Android/i)) || (navigator.userAgent.match(/iPod/i)) ) { location.replace("http://sitename.com/m/"); } 

我使用这个代码,它适用于iPhone / itouch和Android手机/设备。

这是我的JavaScript函数来检测Android设备:

 function isAndroid() { var ua = navigator.userAgent; return ua.match(/Android/) || ua.match(/Dalvik/) || ua.match(/GINGERBREAD/) || ua.match(/Linux;.*Mobile Safari/) || ua.match(/Linux 1\..*AppleWebKit/) }; 

window.location在Android中不起作用? 真? 在Android 2.3.4上看起来对我来说效果很好。 你们使用什么版本的Android无法获得window.location以在浏览器中成功加载新的URL?