64 votes

Récupérez la version Android dans le navigateur par Javascript

Je construis une application Web et souhaite désactiver les effets de transition sur les appareils Android sous la version 3.0.

Est-il possible de récupérer le numéro de version Android par Javascript dans le navigateur? Si c'est le cas, comment?

88voto

neiker Points 3066
function getAndroidVersion(ua) {
    var ua = ua || navigator.userAgent; 
    var match = ua.match(/Android\s([0-9\.]*)/);
    return match ? match[1] : false;
};

getAndroidVersion(); //"4.2.1"
parseInt(getAndroidVersion()); //4
parseFloat(getAndroidVersion()); //4.2

85voto

user1531437 Points 751

Utilisez le code ci-dessous pour obtenir une version d'Android à 2 chiffres

 var ua = navigator.userAgent;
if( ua.indexOf("Android") >= 0 )
{
  var androidversion = parseFloat(ua.slice(ua.indexOf("Android")+8)); 
  if (androidversion < 2.3)
  {
      // do whatever
  }
}
 

Par exemple

Mozilla / 5.0 (Linux; U; Android 2.2.1; fr-ch; A43 Build / FROYO) AppleWebKit / 533.1 (KHTML, comme Gecko) Version / 4.0 Mobile Safari / 533.1

retournera la version Android = 2.2

9voto

jordan314 Points 41

Je ne peux pas commenter car je n'ai pas assez de rep ... Je voulais juste ajouter que je devais changer le code de neiker en

 var match = ua.match(/Android\s([0-9\.]*)/i);
 

pour le rendre insensible à la casse car le Galaxy S3 retournait "Android" au lieu d'Android dans son agent utilisateur

8voto

jfriend00 Points 152127

Vous pouvez regarder la chaîne de l'agent utilisateur - window.navigator.userAgent il est décrit ici: https://developer.mozilla.org/en/DOM/window.navigator.userAgent

Si ce que vous êtes vraiment essayer de les repérer est de savoir si vous avez une version du navigateur qui prend en charge une fonctionnalité particulière, alors il est presque toujours préférable d'utiliser la fonction de détection de la place de la version du navigateur de détection. modernizr est une énorme base de code pour la détection de fonctionnalité que vous pouvez utiliser tel quel ou emprunter l'un morceau particulier de ou tout simplement apprendre la technique générale de travaux.

Quand je Google, je vois les chaînes d'agent utilisateur de ce genre pour Android:

Mozilla/5.0 (Linux; U; Android 2.2.1; fr-ch; A43 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

Une regex de /Android\s+([\d\.]+)/ sur window.navigator.userAgent sera ramasser le numéro de version Android.

2voto

andy Points 28

Les agents utilisateurs de Motorola peuvent avoir les caractéristiques suivantes:

 Linux;Android ; Release/4.1.2
 

J'ai donc dû commencer à utiliser la regex suivante:

 [a|A]ndroid[^\d]*([\d[_|.]]+\d)
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X