Вернуть различные реализации GWT для мобильных и настольных клиентов в GAE - PullRequest
1 голос
/ 17 октября 2011

Я использую различные реализации для настольных и мобильных клиентов в моем приложении GWT (которое работает от GAE). Одним из решений является обнаружение пользовательского агента в GWT. Это решение загружает как настольную, так и мобильную реализацию в клиент.

Более чистым решением было бы обнаружение агента пользователя на сервлете сервера. Это решение возвращает только правильную реализацию для клиента.

Как мне вернуть разные реализации из GAE?

Ответы [ 3 ]

3 голосов
/ 17 октября 2011

Я на самом деле это сделал. Вы объявляете свою страницу приветствия как URL, который отображается как сервлет

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

В этом сервлете вы получите значение userAgent:

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

И затем, в зависимости от этого значения, вы можете либо переслать, либо перенаправить на страницу рабочего стола или на мобильную страницу:

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

или

response.sendRedirect("desireedHtmlPage.html");

Переадресация заставит браузер думать, что он все еще находится на начальном запросе, и будет по-прежнему отображать URL-адрес страницы приветствия, тогда как при перенаправлении фактически сообщается браузеру, что он перенаправлен на другой ресурс, так что URL-адрес ресурса будет отображаться в панели навигации.

0 голосов
/ 17 октября 2011

Здесь также есть хороший пример GWT 2.1 Seminar 2010 . При этом используется проверка агента пользователя на стороне сервера, возвращающаяся к параметрам запроса (m = 1). Это делается в файле gwt.xml приложений.

0 голосов
/ 17 октября 2011

Вы смотрели образец MobileWebApp от GWT?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...