Foros del Web » Programando para Internet » Javascript »

¿Diferencias en chromes usando IndexedDB?

Estas en el tema de ¿Diferencias en chromes usando IndexedDB? en el foro de Javascript en Foros del Web. Hola, buenas. Estoy empezando a aprender a usar Indexed DB por estar al día, y estoy haciendo unas consultas básicas, y probando agregando registros a ...
  #1 (permalink)  
Antiguo 05/02/2015, 16:50
 
Fecha de Ingreso: septiembre-2003
Mensajes: 140
Antigüedad: 20 años, 7 meses
Puntos: 2
¿Diferencias en chromes usando IndexedDB?

Hola, buenas. Estoy empezando a aprender a usar Indexed DB por estar al día, y estoy haciendo unas consultas básicas, y probando agregando registros a la base de datos, etc.

He hecho un login que me compara un usuario/password con la base de datos, me muevo por varias páginas, me saca listados, etc.

También estoy trasteando con Cordova (PhoneGap) para trasladar la aplicación web al smartphone.

El problema con que me encuentro es que hay una acción, que es la de agregar datos a través de un formulario, que en Chrome del PC funciona, pero en el Chrome de Android no. Todo lo demás funciona perfecto, pero agregar no.

¿Alguien sabe si hay alguna direferencia en el comportamiento de Chrome de ambas plataformas? ¿O es que estoy haciendo algo mal? En la consola de debug de chrome, la operación no me da ni warnings ni errores.

Si en realidad no hay diferencias, colgaré el código para ver si alguien me puede ayudar.

He puesto la consulta aquí porque estoy combinando HTML5 con Javascript y JQuery y no sabía exactamente donde ponerlo.
Un saludo.
  #2 (permalink)  
Antiguo 06/02/2015, 02:10
 
Fecha de Ingreso: septiembre-2003
Mensajes: 140
Antigüedad: 20 años, 7 meses
Puntos: 2
Respuesta: ¿Diferencias en chromes usando IndexedDB?

Lo he estado pensando y creo que la duda es mejor ponerla en el foro de HTML. Y además poner el problema concreto. ¿Podéis cerrar este post?

Un saludo.
  #3 (permalink)  
Antiguo 06/02/2015, 02:17
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años
Puntos: 155
Respuesta: ¿Diferencias en chromes usando IndexedDB?

Chrome de Android no soporta IndexedDB. Los navegadores, por mas que sean los mismo funcionan diferentes segun la plataforma. No es lo mismo Chrome en Windows, que en Linux que en Android.

https://developer.mozilla.org/es/doc...dDB-840092-dup
  #4 (permalink)  
Antiguo 06/02/2015, 02:23
 
Fecha de Ingreso: septiembre-2003
Mensajes: 140
Antigüedad: 20 años, 7 meses
Puntos: 2
Respuesta: ¿Diferencias en chromes usando IndexedDB?

¿Entonces porque funciona todo menos agregar registros?
No debería funcionar nada.

Os cuento:

Tengo dos input text y un botón:
<input type='text' name='centroNE' id='centro'></input>
<input type='text' name='ubicacionNE' id='ubicacion'></input>
<input type='button' name='guardarNE' id='guardarNE' value='GUARDAR' />

Ok, el botón, al hacer clic ejecuta la función guardar();
Y el contenido de la función guardar es el siguiente:

Código:
var indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
var dataBase = null;

function guardar() {

	dataBase = indexedDB.open("baseDatos", 1);

	dataBase.onupgradeneeded = function (e) {
		active = dataBase.result;
	};

	dataBase.onsuccess = function (e) {
		console.log('Base de datos cargada');	
		
		var active = dataBase.result;
		var data = active.transaction(["fichas"], "readwrite");
		var object = data.objectStore("fichas");

		var request = object.put({
			centro: document.querySelector("#centro").value,
			ubicacion: document.querySelector("#ubicacion").value,
		});

		request.onerror = function (e) {
			alert(request.error.name + '\n\n' + request.error.message);
		};

		data.oncomplete = function (e) {
			document.querySelector("#centro").value = '';
			document.querySelector("#ubicacion").value = '';
			alert('Registro añadido');
		};
	}
	
	dataBase.onerror = function (e)  {
		console.log('Error cargando la base de datos');
	};
}
P.D.: He leido que apartir de 4.4, Android ya soporta Indexed DB.
  #5 (permalink)  
Antiguo 06/02/2015, 02:38
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años
Puntos: 155
Respuesta: ¿Diferencias en chromes usando IndexedDB?

Cita:
¿Entonces porque funciona todo menos agregar registros?
No debería funcionar nada.
...perdon, no sabia que hablaba con una Ingeniero de Google...


Cita:
P.D.: He leido que apartir de 4.4, Android ya soporta Indexed DB.
..Cuando decis Android es muy amplio. En Android Mobile? en Android Chrome? en el WebView que usa Cordova....?
  #6 (permalink)  
Antiguo 06/02/2015, 08:35
 
Fecha de Ingreso: septiembre-2003
Mensajes: 140
Antigüedad: 20 años, 7 meses
Puntos: 2
Respuesta: ¿Diferencias en chromes usando IndexedDB?

Por supuesto que no hablas con ningún ingeniero de Google. No trolees, please.
Pero dices que no funciona Indexed DB en Chrome en Android y eso es incorrecto.

Habiéndolo probado, sí funciona. Si no lo hubiese probado no digo nada, pero es lo que he probado. No lo emulo con el AVD, si no que envío el APK de cordova directamente a mi smartphone (Nexus 5) y lo pruebo desde ahí.

De hecho, cuando la base de datos se crea por primera vez inserto la tabla de usuarios y contraseñas con el metodo put de forma manual y también funciona. Así que de momento todos los métodos que he probado funcionan.

El problema que estoy teniendo es a la hora de usar el método put desde campos de formulario. Que en PC si funciona, pero en el smartphone no. Por eso pregunto y pido ayuda.
  #7 (permalink)  
Antiguo 06/02/2015, 08:44
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años
Puntos: 155
Respuesta: ¿Diferencias en chromes usando IndexedDB?

Yo no lo digo. Asi indica la documentacion de una de las fuentes mas confiables en internet sobre desarrollo web. https://developer.mozilla.org/es/doc...dDB-840092-dup

Si te fijas, en Mobile, para Android no esta soportado. Que no este soportado puede ser total, o parcial.

Por otro lado hay un polyfill de IndexedDB muy bueno https://github.com/axemclion/IndexedDBShim
  #8 (permalink)  
Antiguo 06/02/2015, 08:46
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años
Puntos: 155
Respuesta: ¿Diferencias en chromes usando IndexedDB?

Por otro lado, aca tambien podes fijarte los navegadores que lo soportan. Fijate la version de navegador en tu dispositivo

http://caniuse.com/#feat=indexeddb
  #9 (permalink)  
Antiguo 06/02/2015, 08:55
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años
Puntos: 155
Respuesta: ¿Diferencias en chromes usando IndexedDB?

Otra cosa importante que veo que tenes confución. Que soporte IndexedDB o no, distinitos navegadores de Android, no tiene mucha relevancia. Porque?. Estas haciendo una aplicacion hibrida. Esta aplicacion esta empaquetada en APK y funciona dentro de un widget de Android llamada WebView. El WebView, para decirlo facil es una especie de navegador basado en WebKit para las aplicaciones Android que permite incluir HTML5, JS, CSS. Perooooo...y aca esta el gran problema de todos los que hacen apps hibridas . El WebView no funciona 100% como un navegador normal, le falta mucha de la API y funcionalidades de un navegador. Digamos que es una version reducida. Por ello muchos desarrolladores de apps hibridas se pegan la cabeza contra la pared, cuando pretenden que una app hibrida funcione igual de como funciona en un navegador normal.

Si es cierto que el webview viene mejorando con cada API de Android que sale. Y los frameworks vienen sacando plugins que no funcionan 100%, pero van.

Hay que recordar que es una app hibrida, no tiene ni la funcionalidad, calidad, rendimiento, etc de una app nativa.


Aca te dejo un plugin de Cordova para IndexedDB

https://github.com/MSOpenTech/cordov...ster/README.md
  #10 (permalink)  
Antiguo 07/02/2015, 05:40
 
Fecha de Ingreso: septiembre-2003
Mensajes: 140
Antigüedad: 20 años, 7 meses
Puntos: 2
Respuesta: ¿Diferencias en chromes usando IndexedDB?

Muy interesante lo del plugin de Indexed DB para Cordova.
Lo adjuntaré al proyecto, por si acaso es eso lo que falta.

Como dices, menudos quebraderos de cabeza para conseguir operaciones básicas decentes con este método.....

Un saludo!
  #11 (permalink)  
Antiguo 10/02/2015, 05:08
 
Fecha de Ingreso: septiembre-2003
Mensajes: 140
Antigüedad: 20 años, 7 meses
Puntos: 2
Respuesta: ¿Diferencias en chromes usando IndexedDB?

Ya lo he conseguido solucionar.

Resulta que se puede hacer un debug de lo que ocurre en el navegador o del componente WebView del movil en el chrome del pc. Vamos, como si fuera un HTML del escritorio.

Y resulta que tenía un problema de comillas dobles y simples que el PC se tragaba, pero el móvil no.

Ya me agrega registros a la base de datos, me los lista, etc...
Ya hace lo que yo quiero por fin HTML5+CSS+JQuery/Javascript+IndexedDB como aplicación nativa del móvil.
  #12 (permalink)  
Antiguo 10/02/2015, 05:40
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: ¿Diferencias en chromes usando IndexedDB?

Cita:
Iniciado por monicapo Ver Mensaje
Resulta que se puede hacer un debug de lo que ocurre en el navegador o del componente WebView del movil en el chrome del pc. Vamos, como si fuera un HTML del escritorio.
Por favor dinos cómo lo haces
  #13 (permalink)  
Antiguo 10/02/2015, 05:52
 
Fecha de Ingreso: septiembre-2003
Mensajes: 140
Antigüedad: 20 años, 7 meses
Puntos: 2
Respuesta: ¿Diferencias en chromes usando IndexedDB?

Claro.

1 - Habilitas depuración USB en el móvil
2 - Lo conectas al PC con el USB. Debes tener los drivers correctos instalados
3 - En Chrome de PC, ir a la dirección: chrome://inspect/#devices
4 - En el móvil, aceptar el mensaje que te salga. Y comprobar que en la pantlla del PC sale tu móvil en la lista ya sincronizado.

Ahora, si navegas por chrome, aparecerá "Inspect" en esa pantalla del PC, y podrás verlo todo.

Más detallado con imágenes, pero en inglés en:
https://developer.chrome.com/devtool...mote-debugging

Literalmente:
Cita:
Remote debugging on Android supports:

Debugging websites in browser tabs.
Debugging WebViews in native Android apps. (mi caso)
Screencasting live to your development machine from your Android device.
Accessing your development server on Android using port forwarding and virtual host mapping.
Muy muy útil.
  #14 (permalink)  
Antiguo 10/02/2015, 07:28
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: ¿Diferencias en chromes usando IndexedDB?

¡Muchas gracias por compartirlo!

Etiquetas: formulario, funcion, usando
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:04.