【问题标题】:Detect tablet in Vaadin 7在 Vaadin 7 中检测平板电脑
【发布时间】:2013-04-23 21:43:28
【问题描述】:

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

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

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

问候,罗伯。

【问题讨论】:

    标签: vaadin


    【解决方案1】:

    这是 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】:

      您还可以使用

      获取 User-Agent HTTP 标头
      Page.getCurrent().getWebBrowser().getBrowserApplication()
      

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

      if(Page.getCurrent().getWebBrowser().isTouchDevice()){ //..}
      
      • getWebBrowser 在 7.4.7 版之前未弃用

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-11-10
        • 1970-01-01
        • 2012-03-20
        • 2015-08-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多