2013-04-23 2 views
5

Я ищу способ легко определить, находится ли мой пользователь на планшете или на полноразмерном ПК. Любая идея, как это сделать?Обнаружение планшета в Ваадине 7

getSession(). GetBrowser(). IsTouchDevice() не будет работать с большим количеством ПК, имеющих сенсорный экран. И getBrowser() в любом случае устарел в Vaadin 7.

Я не использую Vaadin-touchkit (должен я?)

С уважением, Роб.

ответ

5

Вот один из способов для Vaadin 7:

в UI.init() вы получаете параметр VaadinRequest, который вы можете бросить (после проверки типа) в VaadinServletRequest и использовать getHttpServletRequest для получения запроса на основной HTTP. Это вы можете использовать для проверки «User-Agent». Что-то вроде:

if (request instanceof VaadinServletRequest) { 
    HttpServletRequest httpRequest = ((VaadinServletRequest)request).getHttpServletRequest(); 
    String userAgent = httpRequest.getHeader("User-Agent").toLowerCase(); 

    // TODO: Check user agent for all tablet matching keywords 
    if (userAgent.contains("ipad")) { 
     //... 
    } 

} 
2

Вы также можете получить заголовок User-Agent HTTP с

Page.getCurrent().getWebBrowser().getBrowserApplication() 

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

if(Page.getCurrent().getWebBrowser().isTouchDevice()){ //..} 
  • getWebBrowser не deprectated до версии 7.4.7
Смежные вопросы