Diferencia entre las funciones window.openDatabase () y window.sqlitePlugin.openDatabase ()?
Uso de Cordova versión 3.x y Android versión 2.x a 4.x.
Me pregunto:
- Cómo insertar a granel en sqlite en android
- ¿Cómo puedo simular una actualización de la aplicación?
- Cómo obtener el tamaño de la base de datos sqlite actual o el tamaño del paquete en Android?
- ¿Qué ORM java es adecuado para el sistema operativo Android y la lista de apoyo perezoso?
- SQLite FTS3 simular LIKE somestring%
- ¿Es mi entendimiento correcto que todos los dispositivos android por defecto tienen un programa sqlite / interfaz para crear sqlite base de datos?
- ¿Las dos llamadas de función de base de datos anteriores crean una base de datos sqlite en el dispositivo?
- Si la respuesta anterior es no , ¿qué tipo de base de datos hacen las dos llamadas de función anteriores crear?
- Si la respuesta es sí , entonces es el wrapper de la función
window.sqlite.openDatabase()
alrededor dewindow.openDatabase()
? - ¿Las bases de datos creadas por la llamada son persistentes? Es decir, ¿están los datos disponibles después de cerrar y reabrir las aplicaciones empacadas cordova?
- ¿Hay un tamaño máximo de base de datos que puede ser creado por los dos métodos anteriores?
- Consulta de SQLite menor o mayor que check
- Cómo encontrar el valor máximo de la columna en la base de datos sqlite
- Devolver datos de AsyncTask Android
- La manera más eficiente de almacenar un orden arbitrario?
- GreenAno QueryBuilder concatena dinámicamente las condiciones
- Android SQLite Query - Obteniendo los últimos 10 registros
- Cambiar el número de versión de la base de datos SQLite
- SQLite dispara en Android?
- WebSQL (
window.openDatabase
) es un estándar web obsoleto. Pero está disponible en la mayoría de los navegadores de escritorio y móviles. La mayoría de los navegadores implementan la especificación usando SQLite. En Android, los navegadores y WebViews admiten WebSQL, junto con almacenamiento local y almacenamiento de sesión de las primeras versiones, y también IndexedDB desde KitKat.
Entonces tenemos que Android soporta independientemente SQLite para ser utilizado desde las API de Java como uno de sus principales mecanismos de persistencia.
Córdoba es especial. La aplicación se ejecuta en un WebView por lo que debe estar utilizando WebSQL, pero en Android el complemento sustituye a la API y los implantes en el objeto de ventana nuevas funciones que podrían predeterminado para una implementación diferente, en lugar de la API del navegador.
Así que en una aplicación de Cordova, una vez que se carga, cuando se llama openDatabase
que está llamando a una nueva función que Cordova ha colocado en el objeto de Windows superación de la antigua estándar. De los documentos de Córdoba :
Algunos dispositivos ya proporcionan una implementación de esta especificación. Para esos dispositivos, se utiliza el soporte incorporado en lugar de reemplazarlo con la implementación de Cordova. Para los dispositivos que no tienen soporte de almacenamiento, la implementación de Cordova debe ser compatible con la especificación W3C.
Esa cita es ambigua y ya no en los documentos. Para "incorporado" significaba soporte WebSQL incorporado en el WebView. Los documentos que he vinculado son viejos, a partir de una versión 2.x. En esas versiones, Cordova solo hizo el default de la implementación personalizada si WebView no soporta WebSQL (creo que esto nunca sucedió) o si el dispositivo fue afectado por el bug 16175 . La implementación por defecto consistía en usar el complemento Storage.java
que usaba la API de Java para crear una base de datos SQLite. He estado leyendo las fuentes más recientes y en versiones más recientes (3.x) parecen estar usando WebSQLite siempre.
-
Sí, ambos crean un archivo DB, pero la ruta a él será diferente. De hecho, puede abrir el mismo DB desde el código JavaScript y el código Java en su aplicación.
-
El mismo tipo de DB. SQLite es una capa C nativa que gestiona la estructura de archivos. De hecho, también puedes usar esta API nativa de C desde una aplicación nativa de Android.
-
Cordova / Phonegap utiliza SQLIte desde el soporte incorporado si está disponible (en Android es).
-
Sí, se quedan allí.
-
Sí, hay un límite. Compruebe aquí para más información.