Browser Vaadin中的客户端浏览器检测
我想根据用户代理为我的Vaadin应用程序设置不同的主题。 特别是,我想至少区分移动设备(iPhone、Android等)和桌面web浏览器 Vaadin的API揭示了两个有趣的类:Browser Vaadin中的客户端浏览器检测,browser,browser-detection,vaadin,Browser,Browser Detection,Vaadin,我想根据用户代理为我的Vaadin应用程序设置不同的主题。 特别是,我想至少区分移动设备(iPhone、Android等)和桌面web浏览器 Vaadin的API揭示了两个有趣的类: BrowserInfo似乎可以完美地满足我的需要,但无法通过其get方法进行实例化: SEVERE: javax.servlet.ServletException: ... Caused by: java.lang.UnsatisfiedLinkError: com.vaadin.terminal.gwt.
BrowserInfo
似乎可以完美地满足我的需要,但无法通过其get
方法进行实例化:
SEVERE: javax.servlet.ServletException: ...
Caused by: java.lang.UnsatisfiedLinkError: com.vaadin.terminal.gwt.client.BrowserInfo.getBrowserString()Ljava/lang/String;
在我的应用程序中也找不到访问WebBrowser
的方法
BrowserInfo
失败您试图从哪个类调用此方法?BrowserInfo在客户端可用,而WebBrowser在服务器端可用。看看包的命名。正如@quickanalysis所指出的,您必须注意客户端/服务器端组件的分离 要在服务器端获取用户代理字符串,请使用以下代码段:
ApplicationContext context = this.getContext();
if (context instanceof WebApplicationContext) {
String userAgent = ((WebApplicationContext)this.getContext()).
getBrowser().getBrowserApplication();
}
向我指出客户机/服务器组件之间的差异会有所帮助。谢谢!(+1)