我目前的目标是了解iPhone,Android和其他特定设备何时访问我的Java Web应用程序。我不需要知道任何比这更具体的内容。我知道可以从HTTP Request标头获取User-Agent并对其进行字符串搜索。
只要看到“iPhone”或“Android”是否在字符串中就可以了吗?看看user-agent information on wikipedia,对我的需求来说似乎很简单。
我也看过WURFL。但是,它似乎远远超过我的需要。此外,API是GPL,我希望我的许可证不是GPL。谢谢!
答案 0 :(得分:1)
是的,实时处理需要结果。如果它是我支持的移动设备,我想将它们发送到另一个页面。
由于...?一种不同而简单的风格/外观'感觉?请使用CSS media rule。
<link rel="stylesheet" href="default.css" media="screen, projection">
<link rel="stylesheet" href="mobile.css" media="handheld">
掌上电脑会为handheld
选择一个。然后,您可以提供一个不同的CSS来缩小/重新排列部分或省略某些占用空间的部分,等等。
这里不需要令人讨厌的服务器端用户代理嗅探。
答案 1 :(得分:0)
如果您不想要大量的粒度,那么在用户代理中搜索像iPhone
或Android
这样的简单字符串就可以了。
请记住,用户代理字符串完全是任意的,没有什么能阻止某人将字符串更改为他们想要的任何内容。大多数人不会,特别是在移动设备上,但在使用您生成的统计数据时请记住这一点。
此外,例如根据this,iPad用户代理字符串是
Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us)
AppleWebKit/531.21.10 (KHTML, like Gecko)
Version/4.0.4 Mobile/7B314 Safari/531.21.10
这意味着如果您只是搜索iPhone
,那么您将会抓住该存储桶中的所有iPad。
值得考虑的另一种方法(如果您不需要实时结果)只是将日志中的所有访问权限与用户代理字符串一起记录在日志中,并使用日志分析工具来获取数据你需要。
答案 2 :(得分:0)
参见Spring-Mobile项目。您可以使用WurflDeviceResolver来检测几乎所有移动设备