2013-04-23 186 views
5

我正在寻找一种轻松检测我的用户是在平板电脑上还是在全电脑PC上的方法。 任何想法如何做到这一点? ()。getBrowser()。isTouchDevice()将不会与越来越多的电脑具有触摸屏一起工作。无论如何,getBrowser()在Vaadin 7中不推荐使用。在Vaadin 7中检测平板电脑

我没有使用vaadin-TOUCHKIT(我应该?)

问候,罗布。

回答

5

这里是Vaadin 7单向:

UI.init()你得到的参数VaadinRequest,您可以施放(类型检查之后)VaadinServletRequest并使用getHttpServletRequest获得潜在的HTTP请求。这可以用来检查“用户代理”。 喜欢的东西:

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

你也可以得到

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

用户代理HTTP标头好像没有在头文件发送属性,平板电脑或PC机之间differenciate但你可以找到通过使用是否是触摸屏。

if(Page.getCurrent().getWebBrowser().isTouchDevice()){ //..} 
  • getWebBrowser不deprectated最高版本为7.4.7