G�olocalisation en HTML5 sur un mobile Android et Firefox
Bonjour � tous,
Je r�alise une appli web en HTML5 et je rencontre quelques difficult�s avec l'API de g�olocalisation Javascript. Elle fonctionne tr�s bien dans les cas suivants :
- Sur PC avec Chrome, Opera et Safari (pas test� avec IE)
- Sur mobile Windows phone avec IE
- Sur mobile Android avec Opera (pas test� sur un Iphone)
Par contre elle ne fonctionne pas avec Firefox sur PC et surtout avec le navigateur par d�faut sur Android.
Voici mon code (standard pour l'API de g�oloc) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| <body>
Nous devons récupérer votre position.
<script type="text/javascript">
// On tente de récupérer la position GPS
document.write("Tentative de récupération de vos données");
if(navigator.geolocation){
document.write("La géolocalisation est supportée");
// La géolocalisation est supportée, on récupère la position
navigator.geolocation.getCurrentPosition(successCallback, errorCallback,
{
enableHighAccuracy : true,
timeout : 10000, // 10s
maximumAge : 0
}
);
// La fonction de réussite affiche le lien vers la page de choix des bars et transmet les coordonnées contenues dans "position"
function successCallback(position){
document.write("Vous avez bien été localisé. Latitude :" + position.coords.latitude +", longitude : " + position.coords.longitude);
};
// La fonction d'échec teste l'erreur contenue dans "error"
function errorCallback(error){
document.write("Ca n'a pas marché");
//Un message d'erreur est affiché selon le type d'erreur
switch(error.code){
case error.PERMISSION_DENIED:
document.write("Vous n'avez pas autorisé l'accès à votre position");
break;
case error.POSITION_UNAVAILABLE:
document.write("Votre emplacement n'a pas pu être déterminé");
break;
case error.TIMEOUT:
document.write("Le service n'a pas répondu à temps");
break;
case error.UNKNOW_ERROR:
document.write("Une erreur inconnue s'est produite");
break;
}
}
}
else{
document.write("La géolocalisation n'est pas supportée par le navigateur");
}
</script>
</body> |
Ce qu'il se passe sur Android avec le navigateur par d�faut :
1. Les messages suivant apparaissent :
"Tentative de r�cup�ration de vos donn�es"
"La g�olocalisation est support�e"
2. Au bout du temps indiqu� par le timeout (ici 10s) la page devient toute blanche.
Il n'y a donc aucune des deux fonctions sucessCallback ou errorCallback qui n'est appel�e.
J'ai ensuite essay� en passant par une Webview dans une application native Android mais ca donne la m�me chose.
J'ai un Galaxy S LC (�quivalent du S1).
J'ai pas mal recherch� sur les espaces d'aide anglophones et plusieurs personnes ont rencontr� ce probl�me en 2010/2011 sans avoir trouv� de solutions. Je suis assez �tonn� qu'il n'y ai pas plus de doc � ce sujet �tant donn� que la geoloc sur mobile est une fonction assez importante.
Merci beaucoup pour votre aide.