【问题标题】:Detecting mobile browser in GWT [closed]在 GWT 中检测移动浏览器 [关闭]
【发布时间】:2011-03-11 03:23:53
【问题描述】:

我想为移动设备和 PC 实现一个具有单独用户界面的 Web 应用程序。你知道我如何检测它是否是移动的吗?总的来说,您对在 GWT 中实现此类应用程序有什么建议吗?

【问题讨论】:

  • 我不明白为什么它被关闭了。接受的答案是否不正确或具有误导性?我可以看到 OP 提出的不仅仅是标题中的问题,但仍然......
  • 这个问题应该被关闭!这是一个非常有用且相关的问题。

标签: gwt mobile-website


【解决方案1】:

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

Navigator.getPlatform
Navigator.getUserAgent

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

【讨论】:

    【解决方案2】:

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

    如果你习惯开发 iPhone 应用,可以看看NEXT。 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 具有 GWT 绑定,位于 http://emitrom.com/gwt4touch Gwt4Touch 的问题是当前版本中的小部件并不是真正的 GWT 小部件,只是 Sencha Touch 的简单包装器。这意味着当前版本通常与其他 GWT 库不太兼容。根据开发人员的说法,带有真正 GWT 小部件的 2.0 版本应该会在 2011 年 12 月底左右发布,届时它将更加有用。

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

    总之,如果您正在开发一个新应用程序,请查看您最喜欢哪个框架,如果您正在制作现有应用程序的移动版本,您最有可能使用 m-gwt,尤其是如果您正在使用活动和地点。当 Gwt4Touch 2.0 发布时,它可能也可以很好地用于制作现有应用程序的移动版本,所以也请密切关注。

    【讨论】:

    【解决方案3】:

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

    那里可能还有其他一些您可能感兴趣的帖子 - 挖得开心:)

    【讨论】:

    • 看起来您提供的链接不再起作用:“连接到 170.225.97.112 失败”
    • @ArtemAO,感谢您指出这一点 - 已修复 :)
    • 甚至没有一个链接工作
    • @nagprakash:也许是因为这个答案已经快 4 岁了?尝试 web.archive.org 或搜索更新的解决方案 - 当时需要的黑客现在不需要了。例如,有mgwt