在GWT中检测移动浏览器

时间:2010-07-02 14:23:12

标签: gwt mobile-website

我想实现一个带有用于移动和PC的独立用户界面的Web应用程序。你知道我怎么能检测它是否是移动的?一般来说,您对在GWT中实施此类申请有什么建议吗?

3 个答案:

答案 0 :(得分:13)

在客户端,您可以使用Navigator类来获取平台和用户代理字符串:

Navigator.getPlatform
Navigator.getUserAgent

以这种方式识别设备和平台。

答案 1 :(得分:7)

如果您习惯使用MVP模式进行开发或想要制作现有应用的移动版本,我建议您使用m-gwt。 M-gwt与GWT最佳实践(如MVP)配合良好,因为它试图仅扩展GWT的核心,具有移动设备的必要功能。在核心GWT中发现的许多小部件都存在于m-gwt的移动版本中,具有更好的触摸支持等。

如果您习惯开发iPhone应用,可以查看NEXT。接下来的接口使用它自己的MVC系统,这意味着它可以很好地与MVP一起使用或者用于制作现有GWT站点的移动版本,有些人可能更喜欢使用活动和地点,并且它还有一个漂亮的小部件库。

GwtMobile有一组类似于m-gwt和Next接口的小部件。 GwtMobile使用自己的系统来创建页面,其中每个页面都扩展了Page类,并且您有一个goTo方法在不同页面之间导航。有些人可能更愿意使用其他框架,您可以使用Google的活动和而是替代。 GwtMobile有一些不错的小部件,也可以与其他框架一起使用,它也有自己的持久性框架。

M-gwt和GwtMobile都有自己的Phonegap绑定,因此您可以将应用程序上传到Apple应用商店和Android市场。

Gwt-mobile-webkit目前并不是关于移动设备,因为唯一可用且当前未集成在核心GWT中的是数据库API。如果您需要Web SQL,那么gwt-mobile-webkit数据库API就是您的朋友

如果您想要非常简单的简洁小部件和动画,但与石器时代的浏览器兼容,那么请查看informagen mobile gwt 代码隐藏在maven repository

最流行的javascript框架之一Sencha Touch在http://emitrom.com/gwt4touch发现了GWT绑定Gwt4Touch的问题是当前版本的小部件不是真正的GWT小部件,只是简单的Sencha Touch包装。这意味着当前版本通常与其他GWT库不兼容。根据开发人员的说法,具有真实GWT小部件的2.0版本应该在2011年12月底左右发布,届时它将更加实用。

通常,移动GWT库仅支持基于webkit的浏览器,因为它们倾向于使用更新的浏览器功能和CSS3。可以使其与其他浏览器一起使用,但您必须创建一些不使用仅在webkit中找到的CSS3功能的小部件和动画的新版本。

总之,如果您正在开发一个新的应用程序,请查看您最喜欢哪个框架,如果您正在制作现有应用程序的移动版本,那么您最有可能使用m-gwt,尤其是如果您正在使用活动和场所。 Gwt4Touch 2.0有可能在现有应用程序发布时制作移动版本,因此请密切注意。

答案 2 :(得分:6)

有一些关于在GWT中处理移动版Safari并在Just enough code to be dangerous上触摸应用程序的帖子:

可能还有其他一些帖子可能让您感兴趣 - 有趣的挖掘:)