2012-08-14 4 views
1

sur gwtphonegap 1.7.0.0 (iPhone) i utiliser le service de géolocalisation pour obtenir la position de l'utilisateur une seule fois au début de l'applicationiphone gwtphonegap Géolocalisation AllWays sur

GeolocationOptions options = new GeolocationOptions(); 
    options.setMaximumAge(1000); 
    options.setEnableHighAccuracy(true); 
    phoneGap.getGeolocation().getCurrentPosition(callback, options); 

l'appel est effectué qu'une seule fois dans le début et aucune mise à jour de la position est nécessaire par la suite.

Le problème est que lorsque j'exécute mon application sur iPhone, l'indicateur GPS sur la barre d'état reste allumé tout le temps, même après avoir obtenu la bonne position. Cela peut entraîner une utilisation inutile de la batterie.

Existe-t-il un moyen de dire au service de géolocalisation de s'arrêter après avoir obtenu la position?

Merci

Répondre

1

Il semble que nous manquions les routines de l'implémentation de gwt phonegap. Je viens de revérifier et ils ne font pas partie des docs.

Je viens de publier un problème avec le projet GWT-PhoneGap: http://code.google.com/p/gwt-phonegap/issues/detail?id=57

Pour contourner ce problème, vous pouvez déposer à JSNI et appeler la méthode de démarrage/arrêt directement.

+0

une idée de comment faire cela? J'ai essayé quelque chose comme \t 'native statique public String stopGeolocation()/* - { \t \t \t Geolocation.prototype.stop(); \t} - * /; ' mais je ne suis pas sûr quelle est la méthode à appeler. Merci –

+0

OK celui-ci fonctionne très bien: 'native statique public String stopGeolocation()/* - { \t \t if (typeof wnd.device de $ = "undefined" \t \t \t \t && typeof $ wnd.cordova == "objet") { \t \t \t $ wnd.cordova.exec ("Géolocalisation.stopLocation"); \t \t} \t} - * /; ' –

Questions connexes