Ionique 2 / Ionique 3 : Comment obtenir de l'emplacement actuel d'un dispositif
Ne marque pas cette question comme un double, aucune des réponses sur stackoverflow a fonctionné pour moi. Beaucoup d'entre eux sont pour Ionique 1 ou ces réponses sont obsolètes ou ils ne travaillent pas pour appareil android.
J'ai vu beaucoup de solutions sur stackoverflow sur l'obtention d'emplacement actuel de l'appareil, mais non d'entre eux semble être de travailler pour Android .
ce que j'ai essayé:-
-
à l'aide de
geolocation.getCurrentPosition()
, qui travaille pour IOS et navigateur mais pas pour Android. -
à l'aide de
this.geolocation.watchPosition()
, qui travaille pour IOS et navigateur mais pas pour Android. -
à l'aide de
navigator.geolocation.getCurrentPosition()
,qui travaille pour IOS et navigateur mais pas pour Android. -
à l'aide de violon fournies par la solution de cette question getCurrentPosition() et watchPosition() est déprécié sur l'insécurité des origines
De toute façon , tous ces éléments sont obsolète par google en raison de :-
getCurrentPosition() et watchPosition() est déprécié sur l'insécurité
origines, de soutien et sera supprimée dans le futur. Vous devriez
envisager de passer votre demande de garantie d'origine, tels que HTTPS.
Voir goo.gl/rStTGz pour plus de détails.
- ce qui a fonctionné pour moi (https://ionicframework.com/docs/native/background-geolocation/ ) & (https://www.joshmorony.com/adding-background-geolocation-to-an-ionic-2-application/ ) ces deux sont basés sur
background-geolocation plugin
mais,c'est presque de 50 à 55 sec sur un appareil Android, encore une fois ça fonctionne pour ios
Le problème avec joshmorony(https://www.joshmorony.com/adding-background-geolocation-to-an-ionic-2-application/ ) est la solution de premier plan ne fonctionne pas pour Android dispositifs physiques, mais fonctionne bien pour le navigateur et ios. Arrière-plan de suivi fonctionne bien , qui est près de 50 sec pour donner lat & gnl pour la première fois.
Merci de m'aider avec cela. J'ai besoin d'un moyen pour obtenir de l'emplacement actuel en un minimum de temps. Pour votre info, je suis en utilisant google javascript carte sdk /api .
- un peu de chance sur cette question? J'ai aussi eu ce problème
- vérifier ma réponse tommorow .. je suis en mesure d'écrire un morceau de code pour cette isssue ...en attendant, upvote cette question suivre ..donc ionique, les gens peuvent voir le problème
- avez-vous vérifier le code?
- Avez-vous trouvé une solution? J'ai le même problème
- quelle est la solution, même arrière-plan de la géolocalisation ne fonctionne pas pour moi
- j'ai répondu . vérifier
- vérifier ma réponse , j'ai répondu.
- vérifier ma réponse
Vous devez vous connecter pour publier un commentaire.
J'ai essayé toutes les solutions fournies par vous tous et aussi à d'autres sur internet. J'ai finalement trouvé une solution.Vous pouvez essayer ce plugin cordova-plugin-avancé-la géolocalisation (https://github.com/Esri/cordova-plugin-advanced-geolocation ) à partir de ESRI . Mais ce plugin va travailler pour Android pas IOS. Pour ios, vous pouvez aller avec la même vieille approche . j'.e - utilisation de
this.geolocation.getCurrentPosition(...)
outhis.geolocation.watchPosition(..)
.Ajouter cordova-plugin-avancé-la géolocalisation Plugin Comme ceci :-
puis
declare var AdvancedGeolocation:any;
//au sommet de la classeMODIFIER : Première installation va toujours bien. Mais Parfois, vous obtenez des erreurs pour aucune raison dans les installations ultérieures. À faire cette erreur (une erreur avec ce plugin ) s'en aller.Suivez ces étapes :
1. Supprimer ce plugin de votre projet (y compris
config.xml
etpackage.json
).2. Supprimer/Supprimer
android
plate-forme.3. Supprimer
plugins
dossier.4. Maintenant réinstaller ce plugin, encore une fois, en suivant les étapes ci-dessus.
declare var AdvancedGeolocation:any;
sur le dessus du composant que vous avez écrit votre code.Je suis passé par le problème et trouver la solution.
la meilleure façon d'obtenir de la géolocalisation de l'utilisateur est de l'utilisation de ce plugin https://ionicframework.com/docs/native/geolocation/
n'oubliez pas d'ajouter cette app.moudle.ts comme un fournisseur.
simplement en ajoutant ce code dans l'application de la composante j'ai été en mesure d'obtenir la localisation( ne pas oublier d'importer et d'ajouter dans le constructeur)
juste pour confirmer la réponse dans android-je vérifier le chrome débogueur.
this.geolocation.getCurrentPosition()
n'est pas de travail pour android périphérique physique... fonctionne bien sur IOS périphérique physique et aussi sur navigateur.J'ai rencontré un problème similaire. Quand j'construire à partir de la borne avec le --prod drapeau, je ne vois plus cette erreur, puisqu'il est maintenant demander position sur https.
Construits sans --prod drapeau
Construit à l'aide de l' --prod drapeau
Edit: Désolé pour le format, j'espère que cela fait un peu plus de sens. J'ai utilisé la fonction suivante dans un service que je pouvais l'appeler à partir de n'importe où pour obtenir la latitude, la longitude, l'exactitude et l'horodatage. La clé est bien en utilisant les options --prod drapeau dans le terminal lors de la construction de l'application.
cette méthode est de travailler pour les bot android et navigateur
vous devez fournir l'autorisation pour l'application Android comme suit:
Crosswalk WebView Engine
J'ai trouvé la solution pour moi: utilisation de l'api google
https://www.googleapis.com/geolocation/v1/geolocate?key={API_KEY}
Si la plate-forme Android, j'utilise l'api google.