我正在开发一个 Web 应用程序,我想将桌面和移动设备的 UI 分开,所以我想检查使用我的应用程序的客户端是否是移动设备。
我试图在网上寻找官方文档或vaadin论坛,但我找不到任何有用的信息,因为这些答案中提出的几乎所有解决方案都不再可实施(方法已被删除(。
您可以使用VaadinSession.getCurrent().getBrowser()
来查看客户端是否是电话。
public boolean isMobileDevice() {
WebBrowser webBrowser = VaadinSession.getCurrent().getBrowser();
return webBrowser.isAndroid() || webBrowser.isIPhone() || webBrowser.isWindowsPhone();
}
如果有人感兴趣,我找到了绕过CSS的方法,即使我认为它有点有限。
我使用了HttpServletRequest
,VaadinService
和VaadinServletRequest
:我基本上检查了请求中是否有"Mobile","iPhone"或"Android"等词。
这不是一个优雅的解决方案,但它有效。这是代码:
public static boolean isPhone(HttpServletRequest request) {
String url = request.getHeader("User-Agent");
return (url.contains("iPhone") || url.contains("Android"));
}