Voici 3 façons de détecter mobile ...
- Navigateur pris en charge par la Communauté Renifler WURFL project
- navigateur personnalisé sniffing (ce que vous faites maintenant, assez courant mais pas considéré comme une meilleure pratique)
- grâce au soutien de détection caractéristique.
Option 1: Est-ce que probablement vous obtenir le meilleur soutien général si vous cherchez vraiment à soutenir les non-smartphones. Ceci est fait sur le backend en vérifiant l'agent utilisateur par rapport à une base de données massive de périphériques connus régulièrement mise à jour par la communauté. Comme il ne s'appuie pas sur JavaScript, c'est probablement le meilleur moyen de prendre en charge tout le monde.
Option 2: Les personnes qui ne sont pas des smartphones savent que surfer sur le Web est nul. Ils sont donc moins susceptibles de les utiliser pour le web. En pourcentage du trafic, le pourcentage de personnes que vous manquerez en utilisant la détection en JavaScript ne vaut probablement pas la peine d'être mentionné. Pour les sites que j'ai vus, il y avait moins de 2% sur BlackBerry 5 ou plus et moins de 1% pour tout ce qui n'était pas Android, iOS ou BlackBerry 6+. J'ai soutenu cette méthode de détection avant et voici comment je l'ai fait. Notez la tolérance pour toute option basée sur Webkit à condition que l'écran soit petit (isUnknownMobile). Il s'agit d'une tentative de vérification de l'avenir jusqu'à ce qu'une telle plate-forme puisse gagner suffisamment de place pour être invoquée.
<script>
var agent = navigator.userAgent;
var isWebkit = (agent.indexOf("AppleWebKit") > 0);
var isIPad = (agent.indexOf("iPad") > 0);
var isIOS = (agent.indexOf("iPhone") > 0 || agent.indexOf("iPod") > 0);
var isAndroid = (agent.indexOf("Android") > 0);
var isNewBlackBerry = (agent.indexOf("AppleWebKit") > 0 && agent.indexOf("BlackBerry") > 0);
var isWebOS = (agent.indexOf("webOS") > 0);
var isWindowsMobile = (agent.indexOf("Windows Phone OS") > 0);
var isSmallScreen = (screen.width < 767 || (isAndroid && screen.width < 1000));
var isUnknownMobile = (isWebkit && isSmallScreen);
var isMobile = (isIOS || isAndroid || isNewBlackBerry || isWebOS || isWindowsMobile || isUnknownMobile);
var isTablet = (isIPad || (isMobile && !isSmallScreen));
function mobileRedirect(mobileView){location.replace((mobileView)?mobileView:"/mobile/index.jsp");}
</script>
Option 3: La détection d'objets est probablement un avenir beaucoup plus moyen imperméabilisé des tests si un client est mobile.Envisagez d'utiliser le Modernizr Project pour connaître les fonctionnalités prises en charge. Par exemple, si l'appareil a un petit écran et prend en charge le canevas, ou s'il possède une interface tactile, ils sont probablement mobiles. Encore une fois, il s'agit d'une détection basée sur le frontal et repose sur JavaScript.
Si vous cherchez vraiment à rediriger tout le monde qui est mobile, le projet WURFL est votre meilleur pari.
Ne sais pas sur le soutien. – user869470
Pourquoi ne pas vérifier le navigateur ou le système d'exploitation en PHP sur la première page et rediriger l'utilisateur vers votre site mobile? – Jazzschmidt