Как получить ширину окна браузера в Vaadin 10 в коде Java на стороне сервера

В Vaadin 8 я могу получить размер окна следующим образом:

Page.getCurrent().getBrowserWindowWidth();

В Ваадине 10, Page кажется, больше не имеют getBrowserWindowWidth метод.

Как правильно определить ширину окна браузера в Vaadin 10?

1 ответ

Решение

В настоящее время в Vaadin 10 нет соответствующей функции для этого. У нас есть два открытых билета, связанных с этой функцией: один о предоставлении общей информации и один конкретно о размере окна.

Лучший способ сделать что-то, что зависит от размера браузера, - это реализовать эту часть с помощью JavaScript или CSS Media Query. Если вам действительно нужно знать размер на сервере, вам нужно использовать Page.exectueJavaScript вручную извлечь числа в браузере и передать их обратно на сервер, используя, например, @ClientCallable на компонентный метод.

Следует также отметить, что даже если это будет реализовано, оно не будет работать точно так же, как в Vaadin 7 и 8, потому что эти версии замедляют загрузку страницы, ожидая, например, информации о размере, которая будет доступна перед запуском UI.initтогда как Vaadin 10 создаст начальное содержимое пользовательского интерфейса еще до того, как браузер успеет отправить информацию о размере на сервер.

Другие вопросы по тегам