Actu geek trouvailles internet fun

Lorsque l'on réalise une webapp, l'utilisateur peut se trouver dans 2 situations différentes :
1) Il est venu sur votre webapp à partir de son navigateur safari.
2) Il a « cliqué » sur une icône de son écran d'accueil (considérons qu'il a « installé » votre application).

Dans la deuxième situation, si vous ajouté les bons headers dans votre webapp (cf. WebApp Iphone: 3 lignes dans votre header qui changent tout),l'utilisateur a donc votre webapp, sur son iphone, en plein écran. Pas dans le premier cas.

Comment savoir, alors, si l'utilisateur a bien « installé » votre webapp, ou s'il la consulte depuis le navigateur safari ?

En faisant un (ô combien crado) print_r($GLOBALS); , pour chacune des deux situations, une différence apparaît, subtile, mais pratique :

Dans la première situation, nous obtenons :

[_SERVER] => Array
[HTTP_USER_AGENT] => Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; fr-fr) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/xxxxx safari/xxxxx

Dans la deuxième situation :

[_SERVER] => Array
[HTTP_USER_AGENT] => Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; fr-fr) AppleWebKit/533.17.9 (KHTML, like Gecko) Mobile/xxxxx

Dans la première situation, $_SERVER['HTTP_USER_AGENT'] contient « safari/xxxx », pas dans la deuxième situation.
Et cette différence se retrouve également dans la version 5 d'ios.

Ainsi, un simple :

if(eregi('safari', $_SERVER['HTTP_USER_AGENT']))

vous permettra de savoir si l'utilisateur vient de lancer votre webapp ou s'il est encore sur son navigateur.

En peaufinant un peu, on peut imaginer une fonction du genre :

function webapp_installed(){
if(eregi('safari', $_SERVER['HTTP_USER_AGENT']))return false;
return true;
}

Fonction qui retourne true si l'utilisateur est dans la situation n°2, ou false en situation n°1.

Réactions à cet article
J'ai selectionné ce produit geek pour vous: j'ai pensé qu'il vous intéresserait ;) Je vous recommande donc "Les geeks - BD - tome 2"...

D'ailleurs, en parlant de trucs de geeks, saviez vous que Geekndev vous propose une sélection de produits geek du même genre, dans la "boutique geek" ?