Предупреждение о неподдерживаемом браузере GWT

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

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


person Robert Munteanu    schedule 06.06.2009    source источник
comment
Забавно, что список поддерживаемых браузеров GWT не включает Chrome.   -  person Nosredna    schedule 10.06.2009
comment
Хорошая точка зрения. Тем не менее Safari ~ = Chrome для всех целей рендеринга.   -  person Robert Munteanu    schedule 10.06.2009


Ответы (4)


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

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

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

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

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

person Glenn    schedule 07.06.2009
comment
Я думаю, что создание обходного пути для GWT будет довольно сложной задачей, учитывая, что JavaScript, который он обслуживает, основан на браузере, которому, по его мнению, он служит. Если это поможет, вот последняя версия средства обнаружения браузера ppk, которая достаточно нова для идентификации Chrome и iPhone: quirksmode. org / js / detect.html - person Nosredna; 08.06.2009
comment
уточните их официальный список здесь: code.google.com/webtoolkit/doc/ последняя /? - person Jeffrey Blattman; 14.06.2011

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

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

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

person DLH    schedule 09.06.2009

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

person Community    schedule 09.06.2009

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

Сегодня с 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).

person geert3    schedule 25.03.2015