56 votes

Méthode standard de détection des navigateurs mobiles dans une application web basée sur la requête http

Nous commençons à nous intéresser à la prise en charge des navigateurs mobiles pour une application web de commerce électronique d'entreprise (basée sur Java/Servlet). Bien sûr, il y a de nombreuses décisions à prendre, mais il me semble que la pierre angulaire est d'être capable de détecter de manière fiable les navigateurs mobiles et de prendre des décisions sur le contenu à renvoyer en conséquence. Existe-t-il un moyen standard de faire cette détermination (rapidement) sur la base de la requête http, et idéalement de glaner plus d'informations sur le navigateur et l'appareil qui fait la requête (taille de l'écran, capacités html, etc.) ?

J'apprécierais également toute information complémentaire qui pourrait être utile à quelqu'un qui a suivi cette voie en prenant une application web d'entreprise à grande échelle existante et en élaborant une architecture pour la prise en charge des navigateurs mobiles du point de vue du développement.

[Je comprends parfaitement l'en-tête de requête et l'information sur une base de données d'agents utilisateurs standard est une aide précieuse. Pour ceux qui parlent des "autres" propriétés de l'en-tête de requête, si vous pouviez inclure un nom standardisé similaire / une ressource de valeurs, ce serait une grande aide.

[Plusieurs utilisateurs ont proposé des solutions qui impliquent un appel à un service web qui effectuera la détection. Bien que je sois certain que cela fonctionne, ce n'est pas une bonne solution pour un site de commerce électronique d'entreprise, et ce pour deux raisons : 1) la vitesse. Un appel à une tierce partie pour chaque page demandée aurait d'énormes répercussions sur les performances. 2) dépendance/légalité. Nous lierions le temps de réponse de notre site web et des fonctionnalités clés à leur service, ce qui est horrible pour des raisons juridiques et de risque.

42voto

David Points 2131

La méthode standard ne consisterait-elle pas à vérifier l'agent utilisateur ? Voici un base de données des agents utilisateurs que vous pouvez utiliser pour détecter les navigateurs mobiles.

20voto

jmccartie Points 1864

La réponse de @David mentionne l'utilisation de WURFL -- ce qui est probablement votre meilleure option. Mais attention, le taux de réussite est généralement de l'ordre de 60 % (d'après mon expérience et celle d'autres personnes). Avec les opérateurs qui changent constamment les UA et la quantité de profils d'appareils qui existent (60 000+ ?), il n'y a pas de moyen infaillible d'obtenir toutes les bonnes données que vous voulez.

Juste un petit avertissement avant de se fier à une DB de dispositif. J'essaierais de garder les options de l'utilisateur ouvertes en lui permettant de changer les options de session au cas où j'aurais mal deviné.

8voto

Adam Points 14766

Vous pouvez utiliser Modernisateur détecter les capacités du navigateur

6voto

VoxPelli Points 778

Bien qu'il soit possible de détecter un navigateur mobile grâce à son agent utilisateur, la guerre des navigateurs sur la plate-forme PC a montré qu'il n'était pas vraiment judicieux de renifler les agents utilisateurs.

L'idéal serait d'appliquer des styles spécifiques en fonction du type de média ou d'envoyer une réponse différente en fonction d'un en-tête autre que celui de l'agent utilisateur - comme l'en-tête Accept-header qui indique le type de contenu préféré par le navigateur.

À l'heure actuelle, il peut suffire de coder un site qui fonctionne avec l'iPhone et avec Opera grâce au reniflage de navigateur - mais Google Android va arriver d'une minute à l'autre et il y a beaucoup d'autres téléphones mobiles qui auront une fonctionnalité de navigateur proche de celle de l'iPhone dans un avenir proche et ce serait un gaspillage de développer un site Web mobile qui ne prendrait pas en charge ces appareils aussi bien que possible en partant de zéro.

5voto

Paul Points 51

Après des jours de recherche pour trouver la bonne façon de détecter un appareil mobile, j'ai décidé de rester simple [ stupide ] et je vais mettre un bouton "Site pour appareil mobile" sur ma page d'index.... c'est seulement un clic !

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