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?

24
demandé sur Bhesh Gurung 2011-12-15 08:34:37
la source

7 ответов

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
  }
}
37
répondu leonardoborges 2011-12-15 08:48:38
la source

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;
  }
12
répondu nidhin 2014-11-20 19:38:54
la source

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.

5
répondu Jack 2012-09-17 13:56:36
la source

vous pouvez essayer cette lib je pense, yauaa peut détecter une chaîne d'agent utilisateur est quel périphérique / logiciel

https://github.com/nielsbasjes/yauaa

2
répondu Karl Lin 2017-04-10 13:13:29
la source

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 */ }
2
répondu Paweł Walaszek 2018-01-14 03:20:02
la source

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

0
répondu jbindel 2011-12-15 08:45:54
la source

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.

0
répondu Zarwalski 2017-04-12 12:34:02
la source

Autres questions sur