android - 无法在 Web 服务器中检测到 Android

标签 android browser

通过服务器检测 Android 的明显方法是从 User-Agent HTTP header 中搜索“Android”字符串。但是 - 我曾提示这在某些设备上不起作用(例如在我的 HTC Evo 中),它们未被检测为 Android。 whatsmyuseragent.com 为我的 HTC Evo 3D 网络浏览器提供了:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like 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 有同样的问题,相同的用户代理字符串:Android Phone Browser Detection

最佳答案

看起来我在 Android 网络浏览器设置中选择了“显示桌面版本”。一旦关闭,用户代理就在 Android 内部。这似乎是 ICS 的一个功能,HTC 不应该受到指责:谷歌提供了错误的用户代理,我看到它发生在许多不同的手机上。

关于android - 无法在 Web 服务器中检测到 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14642278/

相关文章:

html - 我如何返回、转发和打印来自 my.resorces - vb.net 的(本地)WebBrowser1.DocumentText html 页面

Windows Phone 7 浏览器中的 HTML 5 支持

javascript - 如何在浏览器中存储可被两个域访问的数据

javascript - Chrome 扩展程序 - javascript 不工作

android - 选中复选框时添加值

Android SDK 内容加载器失败并出现 NullPointerException

java - Animate Recycler逐个查看项目

javascript - HTML 文件脚本和 CSS 放置

Android - 与 YouTube 共享功能一样,将文本和图像共享到 WhatsApp

安卓 : drop down a list of items without a spinner