Détection du type D'appareil dans une application web
nous avons une application basée sur Java dans laquelle nous voulons détecter le type de périphérique(mobile ou bureau) pour le périphérique qui envoie la demande.
Comment est-ce possible?
7 réponses
vous devrez lire le User-Agent
en-tête de la demande et se prononcer sur ce point.
dans les applications servlet vanilla, une façon rudimentaire de le faire est:
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
}
}
vous pouvez obtenir des informations sur le périphérique en analysant l'en-tête http
String browserType = request.getHeader("User-Agent");
vous devez analyser browserType pour obtenir le type de périphérique
Cela peut aider
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;
}
vous pouvez obtenir une solution logicielle tierce partie. Il y a plein de logiciels libres là-bas. J'ai utilisé 51Degrees.la solution Java de mobi avant maintenant (et ont également travaillé sur leur solution open source C). Suivez ce lien et cliquez sur le bouton télécharger. Il est relativement facile de se lever et courir.
vous pouvez essayer cette lib je pense, yauaa peut détecter une chaîne d'agent utilisateur est quel périphérique / logiciel
Vous pouvez essayer d'utiliser Mobile De Printemps. Il y a des cours pratiques pour résoudre ça.
Device currentDevice = DeviceUtils.getCurrentDevice(servletRequest);
if(currentDevice.isMobile()) { /* Mobile */ }
if(currentDevice.isTablet()) { /* Tablet */ }
if(currentDevice.isNormal()) { /* Desktop */ }
vous pouvez vérifier le User-Agent
en-tête HTTP sur le HttpServletRequest
objet.
réf:http://www.w3.org/Protocols/HTTP/HTRQ_Headers.html#user-agent
For Java 51Degrees has a free API on GitHub https://github.com/51Degrees/Java-Device-Detection, Il n'est pas daté régulièrement et devrait être en mesure de couvrir toutes les détentions de base dont vous avez besoin.
il y a un tutoriel comment utiliser L'API pour la détection de type de périphérique ici https://51degrees.com/Developers/Documentation/APIs/Java-V32/Tutorials/Web-App
il y a aussi une version cloud gratuite qui offre la propriété DeviceType (si vous voulez plus Qu'une simple IsMobile), vous pouvez trouver les détails à ce sujet sur le site web de 51Degrees. Vous devrez "acheter" le cloud gratuit via le site Web, mais il ne demande pas de données bancaires et est entièrement gratuit. Vous pouvez également utiliser JavaScript et toute autre intégration en fonction de vos besoins.
divulgation: je travaille à 51 degrés.