Как получить ширину окна браузера в 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 создаст начальное содержимое пользовательского интерфейса еще до того, как браузер успеет отправить информацию о размере на сервер.