如何检测浏览器是桌面还是移动?我想使用Java而不是WURFL

时间:2012-04-26 16:34:59

标签: java javascript mobile desktop wurfl

我需要一个解决方案,让我能够检测浏览器是否是移动设备(即iPhone,Android手机),台式机或平板电脑(即iPad,Nook)。根据检测结果,它将重定向到相应的站点。

我可以使用WURFL,但这适用于私人公司,而且价格便宜,不会支付商业许可证。我不介意将WURFL代码本身公开;但是这个类将在JSP页面中被操作。如果我只需要将使用WURFL API代码的类公开,而不是周围的JSP代码,也许我可以使用它。这就是问题:在商业实体背后,关于WURFL API,什么被视为公共信息?我是否也必须使我的JSP页面成为开源的?

如果我不能使用WURFL,而不需要支付商业许可证,是否有另一个捆绑的Java解决方案甚至是JavaScript?

非常感谢。

4 个答案:

答案 0 :(得分:2)

你应该看sebarmeli/JS-Redirection-Mobile-Site,它基于javascript,免费和开源,易于使用和强大。

答案 1 :(得分:2)

如果您喜欢WURFL和JavaScript是一种选择,我建议您查看http://wurfl.io/

简而言之,如果您导入一个微小的JS文件:

<script type='text/javascript' src="//wurfl.io/wurfl.js"></script>

您将留下一个类似于:

的JSON对象
{
 "complete_device_name":"Google Nexus 7",
 "is_mobile":true,
 "form_factor":"Tablet"
}

(假设您正在使用Nexus 7),您将能够执行以下操作:

if(WURFL.form_factor == "Tablet"){
    //dostuff();
}

这就是你要找的东西。

免责声明:我是WURFL发明人,我为提供此免费服务的公司工作。感谢。

答案 2 :(得分:1)

请注意,基于正则表达式的解决方案(例如JS-Redirection-Mobile-Site)将无法正确分类某些浏览器。目前最大的问题是Android平板电脑,其中许多平板电脑将被这些解决方案视为移动设备。如果您真的想确保一切正常,那么您将不得不使用服务器端解决方案,但Android平板电脑可能尚未构成足够的流量来处理相关网站。

免责声明:我为服务器端设备检测解决方案提供商工作。

答案 3 :(得分:0)

查看51degrees.mobi谁提供了Mozilla Public License版本2下您需要的一些数据。

SourceForge还有一个自包含的PHP版本,可以快速实现。