Ris*_*hri 25 javascript java websphere-portal
我们有一个基于Java的应用程序,我们希望在其中检测发送请求的设备的设备类型(移动或桌面).
这怎么可能?
leo*_*ges 41
您必须User-Agent从请求中读取标头并确定该标头.
在vanilla servlet应用程序中,一种粗略的方法是:
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
if(request.getHeader("User-Agent").indexOf("Mobile") != -1) {
//you're in mobile land
} else {
//nope, this is probably a desktop
}
}
Run Code Online (Sandbox Code Playgroud)
nid*_*hin 13
您可以通过解析http标头来获取设备信息
String browserType = request.getHeader("User-Agent");
Run Code Online (Sandbox Code Playgroud)
您应该解析browserType以获取设备类型
这可能有所帮助
public String getBrowserInfo( String Information )
{
String browsername = "";
String browserversion = "";
String browser = Information;
if (browser.contains("MSIE"))
{
String subsString = browser.substring(browser.indexOf("MSIE"));
String info[] = (subsString.split(";")[0]).split(" ");
browsername = info[0];
browserversion = info[1];
} else if (browser.contains("Firefox"))
{
String subsString = browser.substring(browser.indexOf("Firefox"));
String info[] = (subsString.split(" ")[0]).split("/");
browsername = info[0];
browserversion = info[1];
} else if (browser.contains("Chrome"))
{
String subsString = browser.substring(browser.indexOf("Chrome"));
String info[] = (subsString.split(" ")[0]).split("/");
browsername = info[0];
browserversion = info[1];
} else if (browser.contains("Opera"))
{
String subsString = browser.substring(browser.indexOf("Opera"));
String info[] = (subsString.split(" ")[0]).split("/");
browsername = info[0];
browserversion = info[1];
} else if (browser.contains("Safari"))
{
String subsString = browser.substring(browser.indexOf("Safari"));
String info[] = (subsString.split(" ")[0]).split("/");
browsername = info[0];
browserversion = info[1];
}
return browsername + "-" + browserversion;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以尝试使用Spring Mobile。有方便的类来解决这个问题。
Device currentDevice = DeviceUtils.getCurrentDevice(servletRequest);
if(currentDevice.isMobile()) { /* Mobile */ }
if(currentDevice.isTablet()) { /* Tablet */ }
if(currentDevice.isNormal()) { /* Desktop */ }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
70989 次 |
| 最近记录: |