2013-04-23 11 views
5

Szukam sposobu, aby łatwo wykryć, czy mój użytkownik jest na tablecie lub na pełnym komputerze. Każdy pomysł, jak to zrobić?Wykryj tablet w Vaadin 7

getSession(). GetBrowser(). IsTouchDevice() nie będzie działać z coraz więcej komputerów posiadających ekran dotykowy. I getBrowser() jest przestarzałe w Vaadin 7 tak czy inaczej.

nie używam Vaadin-touchkit (mam?)

Pozdrowienia, Rob.

Odpowiedz

5

Oto jeden sposób Vaadin 7:

w UI.init() uzyskać parametr VaadinRequest, który można oddać (po check typu) do VaadinServletRequest i korzystania z getHttpServletRequest uzyskać żądania HTTP podstawowej. To możesz następnie użyć, aby sprawdzić "User-Agent". Coś jak:

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

Można również uzyskać nagłówek User-Agent HTTP z

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

Wydaje się, że nie ma atrybutu wysłane w nagłówkach na sposób poszczególnych tabletu lub komputera, ale można znaleźć czy używasz ekranu dotykowego.

if(Page.getCurrent().getWebBrowser().isTouchDevice()){ //..} 
  • getWebBrowser nie deprectated do wersji 7.4.7