J'ai été invité à créer une réelle page HTML / javascript pour simuler la détection des périphériques mobiles (iphone/ipad/android) à l'aide de code javascript. Ce sera ensuite prendre l'utilisateur pour un autre écran qui vous demande de leur adresse e-mail.
Réponses
Trop de publicités?Je sais que cette réponse est venue 3 ans de retard, mais aucune des autres réponses sont en effet 100% de réponses correctes. Si vous souhaitez détecter si l'utilisateur est sur TOUT type d'appareil mobile (Android, iOS, BlackBerry, Windows Phone, Kindle, etc.), ensuite, vous pouvez utiliser le code suivant:
if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|Opera Mini/i.test(navigator.userAgent)) {
// Take the user to a different screen here.
}
Vous permettrait de détecter le requérant navigateurs chaîne de l'agent utilisateur, et ensuite décider en fonction de ce qu'elle est si elle est à venir à partir d'un navigateur mobile ou pas. Cet appareil n'est pas parfait et ne le sera jamais en raison du fait que les agents utilisateurs ne sont pas normalisés pour les appareils mobiles (au moins pas à ma connaissance).
Ce site va vous aider à créer le code: http://www.hand-interactive.com/resources/detect-mobile-javascript.htm
Exemple:
Vous pourriez obtenir de l'agent utilisateur en javascript en faisant ceci:
var uagent = navigator.userAgent.toLowerCase();
Et puis faire le chèque est dans le même format que ce (juste en utilisant l'iPhone comme un exemple rapide, mais d'autres devraient être un peu différent)
function DetectIphone()
{
if (uagent.search("iphone") > -1)
alert('true');
else
alert('false');
}
Modifier
Vous pouvez ainsi créer une simple page HTML comme ceci:
<html>
<head>
<title>Mobile Detection</title>
</head>
<body>
<input type="button" OnClick="DetectIphone()" value="Am I an Iphone?" />
</body>
</html>
<script>
function DetectIphone()
{
var uagent = navigator.userAgent.toLowerCase();
if (uagent.search("iphone") > -1)
alert('true');
else
alert('false');
}
</script>
Une jolie solution simple est de vérifier pour la largeur de l'écran. Depuis presque tous les appareils mobiles ont un max largeur de l'écran de 480px (à l'heure actuelle), c'est assez fiable:
if( screen.width <= 480 ) {
location.href = '/mobile.html';
}
La chaîne de l'agent utilisateur est également un endroit à regarder. Cependant, la première solution est encore mieux car même si certains flipper périphérique ne répond pas correctement pour que le user-agent, la largeur de l'écran ne ment pas.
La seule exception ici sont tablette comme l'ipad. Ces appareils ont une plus grande largeur de l'écran de smartphones et je serais probablement aller avec le user-agent-string pour ceux.
if(navigator.userAgent.match(/iPad/i)){
//code for iPad here
}
if(navigator.userAgent.match(/iPhone/i)){
//code for iPhone here
}
if(navigator.userAgent.match(/Android/i)){
//code for Android here
}
if(navigator.userAgent.match(/BlackBerry/i)){
//code for BlackBerry here
}
if(navigator.userAgent.match(/webOS/i)){
//code for webOS here
}