Nuestro grupo de especialistas despúes de varios días de investigación y de juntar de datos, encontramos los datos necesarios, nuestro deseo es que te resulte útil en tu plan.
Solución:
Probé todas las soluciones proporcionadas por todos ustedes y otros también en Internet. Finalmente encontré una solución Puedes probar este complemento cordova-plugin-advanced-geolocation (https://github.com/Esri/cordova-plugin-advanced-geolocation) desde ESRI . Pero este complemento funcionará para Androide no IOS. Para ios, puede optar por el mismo enfoque de siempre. es decir, usando this.geolocation.getCurrentPosition(...)
o this.geolocation.watchPosition(..)
.
Agregar cordova-plugin-advanced-geolocation Complemento como este: –
cordova plugin add https://github.com/esri/cordova-plugin-advanced-geolocation.git
luego agregue debajo de la línea en la parte superior de Clase / Componente
declare var AdvancedGeolocation:any;
// en la cima de la clase
Ahora agregue estas líneas dentro de la función relevante del componente (PS: he incluido código para ambos Androide Y IOS)
//**For Android**
if (this.platform.is('android'))
this.platform.ready().then(() =>
AdvancedGeolocation.start((success) =>
//loading.dismiss();
// this.refreshCurrentUserLocation();
try
var jsonObject = JSON.parse(success);
console.log("Provider " + JSON.stringify(jsonObject));
switch (jsonObject.provider)
case "gps":
console.log("setting gps ====<<>>" + jsonObject.latitude);
this.currentLat = jsonObject.latitude;
this.currentLng = jsonObject.longitude;
break;
case "network":
console.log("setting network ====<<>>" + jsonObject.latitude);
this.currentLat = jsonObject.latitude;
this.currentLng = jsonObject.longitude;
break;
case "satellite":
//TODO
break;
case "cell_info":
//TODO
break;
case "cell_location":
//TODO
break;
case "signal_strength":
//TODO
break;
catch (exc)
console.log("Invalid JSON: " + exc);
,
function (error)
console.log("ERROR! " + JSON.stringify(error));
,
"minTime": 500, // Min time interval between updates (ms)
"minDistance": 1, // Min distance between updates (meters)
"noWarn": true, // Native location provider warnings
"providers": "all", // Return GPS, NETWORK and CELL locations
"useCache": true, // Return GPS and NETWORK cached locations
"satelliteData": false, // Return of GPS satellite info
"buffer": false, // Buffer location data
"bufferSize": 0, // Max elements in buffer
"signalStrength": false // Return cell signal strength data
);
);
else
// **For IOS**
let options =
frequency: 1000,
enableHighAccuracy: false
;
this.watch = this.geolocation.watchPosition(options).filter((p: any) => p.code === undefined).subscribe((position: Geoposition) =>
// loading.dismiss();
console.log("current location at login" + JSON.stringify(position));
// Run update inside of Angular's zone
this.zone.run(() =>
this.currentLat = position.coords.latitude;
this.currentLng = position.coords.longitude;
);
);
EDITAR : La primera instalación siempre va bien. Pero a veces es posible que obtenga errores sin motivo alguno en instalaciones posteriores. Para que este error (cualquier error con este complemento) desaparezca, siga estos pasos:
1. Elimine este complemento de su proyecto (incluido config.xml
y package.json
).
2. Eliminar / Quitar android
plataforma.
3. Borrar plugins
carpeta.
4. Ahora reinstale este complemento nuevamente, siguiendo los pasos anteriores.
He repasado el problema y he encontrado la solución.
la mejor manera de obtener la geolocalización del usuario es usar este complemento https://ionicframework.com/docs/native/geolocation/
no olvide agregar esto es app.moudle.ts como proveedor.
simplemente agregando este código en el componente de la aplicación pude obtener la ubicación ( no te olvides de importar y agregar en el constructor)
this.geolocation.getCurrentPosition( enableHighAccuracy: true ).then((resp) =>
console.log(resp);
, Error =>
console.log(Error);
).catch(Error =>
console.log(Error);
)
solo tengo el mismo error mientras estaba usando ionic cordova ejecutar android –livereload que es de origen inseguro
pero cuando uso servicio iónico Puedo ver la respuesta en el navegador y también después de usar iónica cordova ejecutar android
solo para confirmar la respuesta en Android, verifico el depurador de Chrome.
Te mostramos comentarios y calificaciones
Al final de todo puedes encontrar los comentarios de otros sys admins, tú asimismo eres capaz mostrar el tuyo si lo deseas.