Soy nuevo mi app corre en unos telefonos y en otros no?

I am creating an app that uses Geolocation with js api what happens is that when I compile it with Cordova even everything is fine but when I install it on some phones it runs well on others it keeps loading.

what can happen ???

It is a login that when it loads the home page it looks for the current coordinates to know location and in the app.js I do this:

$$(document).on(‘page:init’, ‘.page[data-name=“inicio”]’, function (e) {
app.dialog.preloader(‘Opteniendo Datos de la estacion mas cercana’);

if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(mosUbicacion);

}

function mosUbicacion (ubicacion) {
const lng = ubicacion.coords.longitude;
const lat = ubicacion.coords.latitude;
}
app.dialog.close();

});

Tendras mas informacion? en que teledonos no funciona? ios y android? solo android? q version?

Podes conectar el celular al PC y ver qué error sale en la consola.

1 Like

amigo android moto g 3 funciona en los nuevos nada…

amigo , pues mira eso hice pero nada me sale esta alertas

y aveces dice esto

[Violation] Forced reflow while executing JavaScript took 35ms en las alertas tambien

lo raro que es aveces me ejecuta y aveces no en tambien he utilizado bluestacks y hay aveces si y aveces no

creo que es la api de js para obtener las coordenadas pero nose como saberlo o si me pueden aconsejar como usarla acá en f7

Tendrías que poner el código completo o al menos el relacionado,. sin el código es bastante difícil saber cual es el problema.

Conecta el celular que no funciona al dev tools chrome://inspect/#devices

Mira amigo este es el código:

app.js

// Dom7
var $$ = Dom7;

// Framework7 App main instance
var app = new Framework7({
root: ‘#app’, // App root element
id: ‘io.framework7.testapp’, // App bundle ID
name: ‘Framework7’, // App name
theme: ‘auto’, // Automatic theme detection
mainView: { stackPages: true},

// App root methods
methods: {
helloWorld: function () {
app.dialog.alert(‘Hello World!’);
},

},
// App routes
routes: routes,
});

$$(document).on(‘page:init’, ‘.page[data-name=“inicio”]’, function (e) {
app.dialog.preloader(‘Opteniendo Datos de la estacion mas cercana’);

//Esta es la funcion con la cual estoy tomando las cordenadas
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(mosUbicacion);
}

function mosUbicacion (ubicacion) {
const lng = ubicacion.coords.longitude;
const lat = ubicacion.coords.latitude;

app.dialog.close();
app.dialog.alert(lng+"dfgdsfgsdgdfs"+lat);

}

})

// Init/Create main view
var mainView = app.views.create(’.view-main’, {
url: ‘/’
});

var usuario =localStorage.getItem(“usuario”);
var contrasena =localStorage.getItem(“contrasena”);

if(usuario != null & contrasena != null){
var mainView = app.view.main;
mainView.router.navigate(’/inicio/’);
}

$$(’#my-login-screen .login-button’).on(‘click’, function () {

var username = $$(’#my-login-screen [name=“username”]’).val();
var password = $$(’#my-login-screen [name=“password”]’).val();

localStorage.setItem(“usuario”, username);
localStorage.setItem(“contrasena”, password);

if(username == “admin” & password == “admin”){
app.loginScreen.close(’#my-login-screen’);
var mainView = app.view.main;
mainView.router.navigate(’/inicio/’);
}else{
app.dialog.alert(‘Error de Contraseña o Usuario’,‘Fallo el Ingreso:’);
}
// Close login screen
app.loginScreen.close(’#my-login-screen’);

});

eso redirecciona a una ruta de inicio la cual es esta inicio.html donde solo muestre esas coordenadas en esa alerta

Con eso solo estoy diciendo que apenas el usuario ingrese se muestre en un alert con las coordenadas actuales pero no funciona con el celular en el navegador si lo hace

aclaro que a la app le agregué el plugin cordova plugin add cordova-geolocation-plugin y con este me pide permisos para que el telefono use el gps pero después de dárselos se queda en el alert de cargando…

de antemano muchas gracias

Podes probar agregándole un timeout bien largo para ver si es un error de tiempo de ejecución.
https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-geolocation/#geolocationoptions

También podes agregar una función para cuando la error y saber que error es.
https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-geolocation/#navigatorgeolocationgetcurrentposition


jose_riano

1m

Amigo muy buenas tardes muchísimas gracias por el apoyo y la colaboración que me dio le cuento encontré la solución pues el plugin funciona con mayor precisión activando la opción De ubicación con alta precisión en los dispositivos Y era ese el inconveniente que tenía pues se estaba quedando cargando mientras la obtenida y al no lograrlo con sólo GPS me enviaba el error de posición no disponible muchas gracias ya lo solucioné

como siguiente cosa lo que se debe hacer es que la app le permita al usuario cuando la inicie configurar la obtención de a la ubicación en alta precisión y en eso estoy muchas gracias