通过服务器检测
Android的明显方法是从User-Agent HTTP头搜索“Android”字符串.但是,我曾经抱怨说这在某些设备上不起作用(例如,在我的HTC Evo中),它们没有被检测为Android. whatsmyuseragent.com给我的HTC Evo 3D网络浏览器:Mozilla / 5.0(X11; Linux x86_64)AppleWebKit / 534.24(KHTML,像Gecko)Chrome / 11.0.696.34 Safari / 534.24.没有Android字符串或版本.它可能是设备上改变它的安全软件,或HTC特定的问题,不确定.
显然,Android Chrome在同一台设备上有另一个更好的UA:Mozilla / 5.0(Linux; Android 4.0.3; HTC EVO 3D X515m Build / IML74K)AppleWebKit / 535.19(KHTML,像Gecko)Chrome / 18.0.1025.166 Mobile Safari / 535.19,但我不能只希望,例如QR码阅读器应用程序打开Chrome,而不是内置的Android浏览器,它具有无效的UA.
有没有一个好的技巧(JavaScript调用?)来检测安全的Android设备和浏览器?
编辑:
看起来与Galaxy S III相同的问题,同样的User-Agent字符串:Android Phone Browser Detection