5

我正在寻找一种方法来轻松检测我的用户是在平板电脑上还是在成熟的个人电脑上。知道怎么做吗?

getSession().getBrowser().isTouchDevice() 不适用于越来越多的带有触摸屏的电脑。无论如何,getBrowser() 在 Vaadin 7 中已被弃用。

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

问候,罗布。

4

2 回答 2

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")) { 
        //...
    }

}
于 2013-04-24T07:10:35.750 回答
2

您还可以通过以下方式获取 User-Agent HTTP 标头

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

似乎标题中没有发送属性来区分平板电脑或个人电脑,但您可以通过使用来确定它是否是触摸屏。

if(Page.getCurrent().getWebBrowser().isTouchDevice()){ //..}
  • getWebBrowser 在版本 7.4.7 之前不被弃用
于 2015-06-03T07:49:15.390 回答