web应用程序中的java检测设备类型 1 周,5 日 Questions & Answers 83849 我们有一个基于Java的应用程序,其中我们希望检测发送请求的设备的设备类型(移动或桌面) 怎么可能呢
# 1 楼答案 你可以尝试使用Spring Mobile。有一些方便的课程可以解决这个问题 Device currentDevice = DeviceUtils.getCurrentDevice(servletRequest); if(currentDevice.isMobile()) { /* Mobile */ } if(currentDevice.isTablet()) { /* Tablet */ } if(currentDevice.isNormal()) { /* Desktop */ }
# 2 楼答案 你可以得到第三方软件解决方案。有很多开源软件。我以前使用过51Degrees.mobi's Java solution(也参与过他们的开源C解决方案)。点击该链接并点击下载按钮。站起来跑步相对容易
# 3 楼答案 您可以检查HttpServletRequest对象上的User-Agent{a1} 参考:http://www.w3.org/Protocols/HTTP/HTRQ_Headers.html#user-agent
# 4 楼答案 您可以通过解析http头来获取设备信息 String browserType = request.getHeader("User-Agent"); 您应该解析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; }
# 5 楼答案 您必须从请求中读取User-Agent头并做出决定 在香草servlet应用程序中,一种简单的方法是: public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if(request.getHeader("User-Agent").contains("Mobi")) { //you're in mobile land } else { //nope, this is probably a desktop } }
# 1 楼答案
你可以尝试使用Spring Mobile。有一些方便的课程可以解决这个问题
# 2 楼答案
你可以得到第三方软件解决方案。有很多开源软件。我以前使用过51Degrees.mobi's Java solution(也参与过他们的开源C解决方案)。点击该链接并点击下载按钮。站起来跑步相对容易
# 3 楼答案
您可以检查
HttpServletRequest
对象上的User-Agent
{a1}参考:http://www.w3.org/Protocols/HTTP/HTRQ_Headers.html#user-agent
# 4 楼答案
您可以通过解析http头来获取设备信息
您应该解析browserType以获取设备类型
这可能会有帮助
# 5 楼答案
您必须从请求中读取
User-Agent
头并做出决定在香草servlet应用程序中,一种简单的方法是:
# 6 楼答案
你可以试试这个库,我想,yauaa可以检测到一个用户代理字符串是哪个设备/软件
https://github.com/nielsbasjes/yauaa