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

Как лучше всего это сделать?

4
Robert Munteanu 6 Июн 2009 в 23:49

4 ответа

Лучший ответ

Команда GWT не предоставляет список неподдерживаемых браузеров, только поддерживаемые браузеры, и это расплывчатый список для «самых последних версий Internet Explorer, Firefox и Safari. (Опера тоже большую часть времени.) ».

Если вы хорошо знаете, какой браузер / версия не будет работать, вы можете использовать этот код:

  public static native String getUserAgent() /*-{
     return navigator.userAgent.toLowerCase();
  }-*/

Чтобы узнать, какой браузер используется, и, возможно, придумать обходной путь.

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

1
Glenn 7 Июн 2009 в 22:14

Я понимаю, что это старый вопрос, но у меня была та же проблема, и я хотел поделиться новым решением для нее.

Сегодня с GWT2.7 "устаревшие" браузеры пытаются загрузить undefined.cache.js. Очевидно, это не удается, и клиент застревает навсегда.

Вы можете исправить сам GWT, установив резервные шаги компиляции, но простое решение - просто предоставить (созданный вручную) undefined.cache.js и разместить его там, где находятся другие сгенерированные файлы.

Внутри вы помещаете одну строчку:

xxxxxxx.onScriptDownloaded(alert('This browser is not supported anymore.\nPlease upgrade to a more recent browser.'));

Где xxxxxxx - это базовое имя вашего модуля (от xxxxxxxx.gwt.xml).

0
geert3 17 Апр 2015 в 12:29

Если вы хотите сделать его простым и глупым, проверьте код javascript в своем основном файле html перед загрузкой GWT. Тем не менее, я бы предпочел, чтобы GWT справлялся с более или менее причудливыми вещами. Вы также можете просто порекомендовать Chrome или Firefox.

0
9 Июн 2009 в 23:57

GWT также обеспечивает обнаружение браузера с помощью файла .gwt.xml. Посмотри на это:

http://code.google.com/p/google-web-toolkit-doc-1-5/wiki/DevGuideDeferredBindingReplacement

Это интересное решение, но я не уверен, что это лучшее решение в вашем случае. Это может быть очень полезно для создания упрощенной версии вашего приложения, которая будет автоматически загружаться в неподдерживаемых браузерах.

2
Eliran Malka 27 Дек 2012 в 10:52