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;
}
Другие вопросы по тегам