Vaadin-14: проверка, является ли клиент мобильным устройством
Я разрабатываю веб-приложение, и я хочу разделить пользовательские интерфейсы для настольных компьютеров и мобильных устройств, поэтому я хочу проверить, является ли клиент, использующий мое приложение, мобильным устройством или нет.
Я попытался найти в Интернете официальную документацию или форум vaadin, но не смог найти никакой полезной информации, поскольку почти все решения, предложенные в этих ответах, больше не реализованы (методы были удалены).
2 ответа
Вы можете использовать VaadinSession.getCurrent().getBrowser()
to see if your client is a phone or not.
public boolean isMobileDevice() {
WebBrowser webBrowser = VaadinSession.getCurrent().getBrowser();
return webBrowser.isAndroid() || webBrowser.isIPhone() || webBrowser.isWindowsPhone();
}
Если кому-то интересно, я нашел способ обойти CSS, даже если я думаю, что он немного ограничен.
Я использовал HtmlServletRequest, VaadinService и VaadinServletRequest: я в основном проверял, есть ли в запросе такие слова, как "Mobile", "iPhone" или "Android".
Это не изящное решение, но оно работает. Это код:
public static boolean isPhone(HttpServletRequest request) {
String url = request.getHeader("User-Agent");
if (url.contains("iPhone") || url.contains("Android")) {
isMobile = true;
} else {
isMobile = false;
}
return isMobile;
}