我是 MobileESP 项目的创始人和维护者,这是一个用于检测移动设备的免费开源跨平台库。它仍然非常活跃!:-)
www.mobileesp.org
MobileESP只给出二进制“是移动的”响应。您可以按 iOS、Android 或 Windows Phone 等平台或按设备类别(如“iPhone Tier”智能手机与平板电脑)进行检测。请务必快速查看 API 页面。
您可能知道,用户代理字符串变化很大。如果设备附带浏览器,制造商可能会对其进行定制。例如,HTC 经常自定义原生 Android 浏览器的用户代理字符串。
Google 提供了有关 OEM 应如何自定义用户代理的建议。如果该设备应被视为手机,则 Google 建议在字符串中包含单词“mobile”元素。但如果该设备应被视为平板电脑,则该字符串不应包含“mobile”。当然,对这一建议的遵守情况差异很大。
像 Opera 或 Maxthon 这样的第三方浏览器可以在用户代理字符串中放入任何他们想要的东西——然后就可以了!某些“新”浏览器将保持无名,在为每个平台(例如,Android 与 iOS 版本)在其用户代理字符串中放置正确信息方面做得很差。除非您从这些浏览器获得大量流量并希望投资于跟踪每个平台和软件版本的确切用户代理值,否则您无能为力。
无论如何,MobileESP 的创建目的是在提供页面时逐页进行检测。我也特意编写了易于阅读和自定义的代码。
要进行批处理,您可以执行以下操作:
1.) 在构造函数中,注释掉 initDeviceScan() 方法。您不需要它来进行批量处理。
2.) 将 UserAgent 和一个空字符串传递给构造函数 (UAgentInfo())。
3.) 然后运行您感兴趣的任何检测方法。根据对用户的扫描,仔细考虑执行它们的顺序以节省时间。
例如,如果您的大多数用户都使用 iPhone,并且这是您感兴趣的检测标准之一,那么首先运行该检查。如果是这个例子,你肯定不会先运行 BlackBerry 方法!
我的联系信息在源代码和网站上。如果您有任何问题或遇到任何错误,请给我发送便条。一定要在 MobileESP.org 网站上查看一些提示。
祝您项目顺利,Aniket!