我正在寻找一种方法来轻松检测我的用户是在平板电脑上还是在一台成熟的pc上。你知道怎么做吗?
随着越来越多的pc拥有触摸屏,getSession()、.getBrowser()、.isTouchDevice()将无法工作。而getBrowser()在Vaadin7中无论如何都是不推荐使用的。
我没有使用vaadin-touchkit工具包(我应该吗?)
问候你,罗伯。
发布于 2013-04-24 15:10:36
以下是Vaadin 7的一种方法:
在UI.init()中,您将获得参数VaadinRequest,您可以将其强制转换(在类型检查之后)为VaadinServletRequest,并使用getHttpServletRequest来获取底层的HTTP请求。然后你可以用它来检查"User-Agent“。类似于:
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")) {
//...
}
}发布于 2015-06-03 15:49:15
您还可以使用以下命令获取User-Agent HTTP标头
Page.getCurrent().getWebBrowser().getBrowserApplication()似乎在标头中没有发送属性来区分平板电脑和pc,但你可以通过使用来确定它是否是触摸屏。
if(Page.getCurrent().getWebBrowser().isTouchDevice()){ //..}https://stackoverflow.com/questions/16179688
复制相似问题