web-dev-qa-db-fra.com

Comment détectez-vous entre un agent utilisateur Desktop et Mobile Chrome?

Pour la page d'accueil de Chrome Desktop Extension, j'essaie de détecter si un utilisateur utilise Chrome pour Desktop ou Chrome pour Mobile sous Android. Actuellement, le script ci-dessous identifie Android Chrome de la même manière que Desktop chrome. Sur le bureau Chrome, il devrait afficher le lien "chrome"; Toutefois, si quelqu'un utilise Chrome pour Android, il devrait affiche le lien "mobile-other". 

Scénario:

<script>$(document).ready(function(){
    var ua = navigator.userAgent;
    if (/Chrome/i.test(ua))
       $('a.chrome').show();

    else if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Mobile|mobile/i.test(ua))
       $('a.mobile-other').show();

    else
       $('a.desktop-other').show();
  });</script>

Agent utilisateur Android Chrome:

Mozilla/5.0 (Linux; <Android Version>; <Build Tag etc.>) AppleWebKit/<WebKit Rev> (KHTML, like Gecko) Chrome/<Chrome Rev> Mobile Safari/<WebKit Rev>
16
WoJo

Le problème est que l'agent utilisateur aura toujours "Chrome", qu'il s'agisse de la version de bureau ou mobile. Vous devez donc d'abord vérifier le cas plus spécifique.

$(document).ready(function(){
    var ua = navigator.userAgent;

    if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Mobile|mobile|CriOS/i.test(ua))
       $('a.mobile-other').show();

    else if(/Chrome/i.test(ua))
       $('a.chrome').show();

    else
       $('a.desktop-other').show();
});
23
imtheman

Donc, pour mettre à jour le code de @ imtheman selon la dernière chaîne d'agent utilisateur Chrome pour iOS:

$(document).ready(function(){
var ua = navigator.userAgent;

if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Mobile|mobile|CriOS/i.test(ua))
   $('a.mobile-other').show();

else if (/Chrome/i.test(ua))
   $('a.chrome').show();

else
   $('a.desktop-other').show();
});
2
Charlse Peng