【问题标题】:Return different GWT imlementation to Mobile and Desktop clients on GAE向 GAE 上的移动和桌面客户端返回不同的 GWT 实现
【发布时间】:2011-10-17 12:42:27
【问题描述】:

我在我的 GWT 应用程序(从 GAE 运行)中为桌面和移动客户端使用不同的实现。一种解决方案是 GWT 中的用户代理检测。此解决方案将桌面和移动实现都加载到客户端中。

更简洁的解决方案是在服务器 servlet 上检测用户代理。此解决方案仅返回客户端的正确实现。

如何从 GAE 返回这些不同的实现?

【问题讨论】:

    标签: java google-app-engine gwt


    【解决方案1】:

    我确实做到了。您将欢迎页面声明为映射到 servlet 的 url

    <welcome-file-list>
            <welcome-file>/urlToSomeServlet</welcome-file>
        </welcome-file-list>
    

    在这个 servlet 中,您可以获得 userAgent 值:

    String userAgent = request.getHeader("User-Agent");
    

    然后,根据该值,您可以转发或重定向到桌面页面或移动页面:

    request.getRequestDispatcher("desireedHtmlPage.html").forward(request,response);
    

    response.sendRedirect("desireedHtmlPage.html");
    

    Forward 会让浏览器认为他还在初始请求中,它仍然会显示欢迎页面 url,而执行重定向实际上会告诉浏览器他正在被重定向到另一个资源,因此将显示该资源的 url在导航栏中。

    【讨论】:

      【解决方案2】:

      您是否查看过来自 GWT 的 MobileWebApp 示例?

      【讨论】:

        【解决方案3】:

        这里还有一个很好的例子GWT 2.1 Seminar 2010。这使用服务器端用户代理检查返回查询参数 (m=1)。它在应用程序 gwt.xml 文件中执行此操作。

        【讨论】:

          猜你喜欢
          • 2011-07-17
          • 2018-10-07
          • 2018-05-02
          • 2018-04-11
          • 2017-02-28
          • 2012-09-02
          • 1970-01-01
          • 2011-05-23
          • 2016-03-04
          相关资源
          最近更新 更多