Comment pourrais-je détecter que le périphérique utilisé est un Android pour un site Web mobile?
Je dois appliquer certains attributs CSS à la plate-forme Android.
Merci
Jetez un oeil à cela: http://davidwalsh.name/detect-Android
JavaScript:
var ua = navigator.userAgent.toLowerCase();
var isAndroid = ua.indexOf("Android") > -1; //&& ua.indexOf("mobile");
if(isAndroid) {
// Do something!
// Redirect to Android-site?
window.location = 'http://Android.davidwalsh.name';
}
PHP:
$ua = strtolower($_SERVER['HTTP_USER_AGENT']);
if(stripos($ua,'Android') !== false) { // && stripos($ua,'mobile') !== false) {
header('Location: http://Android.davidwalsh.name');
exit();
}
Edit : Comme indiqué dans certains commentaires, cela fonctionnera dans 99% des cas, mais certains cas Edge ne sont pas couverts. Si vous avez besoin d'une solution beaucoup plus avancée et à l'épreuve des balles dans JS, vous devez utiliser platform.js: https://github.com/bestiejs/platform.js
Que diriez-vous de ce one-liner?
var isAndroid = /(Android)/i.test(navigator.userAgent);
Le modificateur i
est utilisé pour effectuer une correspondance sans distinction de casse.
Technique extraite du projet test Cordova AdMob: https://github.com/floatinghotpot/cordova-admob-pro/wiki/00.-How-To-Use-with-PhoneGap-Build
Je pense que la réponse de Michal est la meilleure, mais nous pouvons aller plus loin et charger dynamiquement un Android CSS selon la question initiale:
var isAndroid = /(Android)/i.test(navigator.userAgent);
if (isAndroid) {
var css = document.createElement("link");
css.setAttribute("rel", "stylesheet");
css.setAttribute("type", "text/css");
css.setAttribute("href", "/css/Android.css");
document.body.appendChild(css);
}
;(function() {
var redirect = false
if (navigator.userAgent.match(/iPhone/i)) {
redirect = true
}
if (navigator.userAgent.match(/iPod/i)) {
redirect = true
}
var isAndroid = /(Android)/i.test(navigator.userAgent)
var isMobile = /(mobile)/i.test(navigator.userAgent)
if (isAndroid && isMobile) {
redirect = true
}
if (redirect) {
window.location.replace('jQueryMobileSite')
}
})()