GWT 2.5.1 и пользовательский агент Kindle paperwhite

Я использую GWT 2.5.1 и получаю доступ к .war, развернутому с Tomcat 7.0.32, используя браузер модели Kindle paperwhite № EY21.

Проблема в том, что GWT не может правильно получить пользовательский агент Kindle, я имею в виду, я получаю следующие значения:

  • С моего сервера: getMyThreadLocalRequest (). getHeader ("user-agent") -> Mozilla / 5.0 (X11; U; Linux armv7l как Android; en-us) AppleWebKit / 531.2 + (KHTML, вроде Gecko) Версия / 5.0 Safari / 533.2 + Kindle / 3.0 + -> ок!

  • Из Интернета www.whatsmyuseragent.com -> Mozilla / 5.0 (X11; U; Linux armv7l, как Android; en-us) AppleWebKit / 531.2 + (KHTML, как Gecko) Версия / 5.0 Safari / 533.2+ Kindle / 3.0 + -> ок!

  • Из библиотеки GWT 2.5.1: Window.Navigator.getUserAgent () -> Mozilla / 5.0 (X11; U; Linux armv7l; en-us) AppleWebKit / 534.26 + (KHTML, например Gecko ) Версия / 5.0 Safari / 534.26 + ->? ¿? ¿

Итак, я думаю, что функция GWT не получает правильного значения для пользовательского агента браузера Kindle paperwhite ...

Любая идея??

Заранее большое спасибо!!


person horstmann    schedule 29.10.2013    source источник


Ответы (1)


GWT вычисляет значение user.agent на стороне клиента в классе UserAgentPropertyGenerator.java, который используется для создания сценария начальной загрузки:

  body.println("var ua = navigator.userAgent.toLowerCase();");

  [...]

  // webkit family
  new UserAgentPropertyGeneratorPredicate("safari")
  .getPredicateBlock()
    .println("return (ua.indexOf('webkit') != -1);")
  .returns("'safari'"),

Взглянув на этот код и отправленную вами строку пользовательского агента, gwt должен выбрать webkit перестановку (поскольку пользовательский агент содержит WebKit).

Если вы не получаете никакой ошибки, просто пустую страницу, возможно, вы отключили перестановку для браузеров webkit (сафари) в своем файле модуля, или, может быть, вы используете другие свойства помимо user.agent в своем проекте, и какая-то комбинация свойств не соответствует вашему устройству.

Если вы используете xsiframe компоновщик, взгляните на файл compilation-mappings.txt, созданный в выходной папке компилятора, в котором есть список с именами перестановок и свойствами.

person Manolo Carrasco Moñino    schedule 29.10.2013