2010-11-26 1 views
0

Mon objectif actuel est de savoir quand un iPhone, Android et un autre périphérique spécifique accède à mon application Web Java. Je n'ai pas besoin de savoir quoi que ce soit de plus précis. Je sais que l'on peut obtenir l'User-Agent à partir de l'en-tête HTTP Request et faire une recherche par chaîne.Comment déterminer si un type spécifique de client mobile accède à mon application Web?

Peut-il être aussi simple que de voir si "iPhone" ou "Android" est dans la chaîne? En regardant le user-agent information on wikipedia, il semble assez simple pour mes besoins.

J'ai aussi regardé WURFL. Cependant, il semble beaucoup plus que ce dont j'ai besoin. De plus, les API sont GPL et je veux que ma licence ne soit pas GPL. Merci!

Répondre

0

Si vous ne voulez pas beaucoup de granularité, recherchez une chaîne simple comme iPhone ou Android dans l'agent utilisateur pourrait être bien. N'oubliez pas que les chaînes de l'agent utilisateur sont complètement arbitraires et rien n'empêche quelqu'un de changer la chaîne pour tout ce qu'ils veulent. La plupart des gens ne le feront pas, surtout sur un appareil mobile, mais gardez cela à l'esprit lorsque vous utilisez les statistiques que vous générez.

également, par exemple selon this la chaîne d'agent utilisateur iPad est

Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) 
AppleWebKit/531.21.10 (KHTML, like Gecko) 
Version/4.0.4 Mobile/7B314 Safari/531.21.10 

Ce qui signifie que si vous recherchez juste pour iPhone vous attraper tous les iPads dans ce seau. Une autre approche à prendre en compte (si vous n'avez pas besoin des résultats en temps réel) est de simplement enregistrer tous les accès à votre application dans un journal avec la chaîne d'agent utilisateur et d'utiliser un outil d'analyse de journal pour obtenir le les données dont vous avez besoin.

+0

Merci! Oui, les résultats sont nécessaires pour le traitement en temps réel. Si c'est un appareil mobile que je supporte, je veux l'envoyer sur une autre page. – finneycanhelp

+0

BTW, bon point sur l'iPad! Je vais vouloir regarder ça en le codant. :) – finneycanhelp

1

Oui, les résultats sont nécessaires pour le traitement en temps réel. Si c'est un appareil mobile que je supporte, je veux l'envoyer sur une autre page.

Parce que ...? D'un style/look'n'feel différent et plus simple? Utilisez le CSS media rule pour cela.

<link rel="stylesheet" href="default.css" media="screen, projection"> 
<link rel="stylesheet" href="mobile.css" media="handheld"> 

Handhelds choisira celui pour handheld. Vous pouvez alors simplement fournir un CSS différent qui réduit/réorganise les sections ou omet certaines sections encombrantes, et cetera.

Pas besoin d'un agent utilisateur côté serveur méchant reniflant ici.

+0

Bien sûr! C'est souvent vrai. Cependant, ceci est un cas particulier. – finneycanhelp

Questions connexes