Spesso può capitare di avere bisogno di conoscere le caratteristiche del browser o del client che ha inviato la richiesta, in modo da prendere decisioni specifiche. La richiesta arriva da un dispositivo mobile? O da Firefox? O magari da Internet Explorer?
Se vi è mai capitato di avere bisogno di una risposta a queste domande, sappiate che Liferay ha un'utilissima classe anche per questo; vediamo di cosa si tratta.
La classe in questione si chiama com.liferay.portal.kernel.servlet.BrowserSnifferUtil
e possiede numerosi metodi per tutte (o quasi) le problematiche:
acceptsGzip(HttpServletRequest)
isAndroid(HttpServletRequest)
isChrome(HttpServletRequest)
isFirefox(HttpServletRequest)
isIe(HttpServletRequest)
isIphone(HttpServletRequest)
isLinux(HttpServletRequest)
isMac(HttpServletRequest)
isMobile(HttpServletRequest)
isWindows(HttpServletRequest)
- ...
Ciascuno di questi metodi è abbastanza ovvio e può essere invocato ovunque, sia all'interno di una classe Java che di una JSP, e può essere molto utile per eseguire elaborazioni differenti a seconda del dispositivo.
E se invece avessi bisogno delle stesse informazioni anche lato Javascript? Non è un problema perchè, anche in questo caso, Liferay ci mette a disposizione l'oggetto Javascript corrispondente alla classe BrowserSnifferUtil
:
Liferay.Browser.acceptsGzip()
Liferay.Browser.isAndroid()
Liferay.Browser.isChrome()
Liferay.Browser.isFirefox()
Liferay.Browser.isIe()
Liferay.Browser.isIphone()
Liferay.Browser.isLinux()
Liferay.Browser.isMac()
Liferay.Browser.isMobile()
Liferay.Browser.isWindows()
- ...