首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测Vaadin 7中的片剂

检测Vaadin 7中的片剂
EN

Stack Overflow用户
提问于 2013-04-24 05:43:28
回答 2查看 1.9K关注 0票数 5

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

随着越来越多的pc拥有触摸屏,getSession()、.getBrowser()、.isTouchDevice()将无法工作。而getBrowser()在Vaadin7中无论如何都是不推荐使用的。

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

问候你,罗伯。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-24 15:10:36

以下是Vaadin 7的一种方法:

UI.init()中,您将获得参数VaadinRequest,您可以将其强制转换(在类型检查之后)为VaadinServletRequest,并使用getHttpServletRequest来获取底层的HTTP请求。然后你可以用它来检查"User-Agent“。类似于:

代码语言:javascript
复制
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")) { 
        //...
    }

}
票数 5
EN

Stack Overflow用户

发布于 2015-06-03 15:49:15

您还可以使用以下命令获取User-Agent HTTP标头

代码语言:javascript
复制
Page.getCurrent().getWebBrowser().getBrowserApplication()

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

代码语言:javascript
复制
if(Page.getCurrent().getWebBrowser().isTouchDevice()){ //..}

  • getWebBrowser 7.4.7版之前的版本不建议使用
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16179688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档