Cómo obtener datos de cordova-plugin-nativestorage en android java
Buen día, hago mod de fondo nativo para Córdoba y necesito obtener datos de js a java. Ahorro datos en js con plugin cordova-plugin-nativestorage , con este código:
<!DOCTYPE html> <html> <head> <title>Save data</title> <script type="text/javascript" charset="utf-8" src="cordova.js"></script> <script type="text/javascript" charset="utf-8"> function onLoad() { document.addEventListener("deviceready", onDeviceReady, false); } function onDeviceReady() { NativeStorage.setItem("somekey", "value", null, null); } </script> </head> <body onload="onLoad()"> </body> </html>
Pero mi problema es: No sé cómo obtener estos datos ("valor") con java en los servicios de fondo sin la actividad de Córdoba.
- No es capaz de crear un proyecto de aplicación android en eclipse.Error Message - Introduzca un nombre de aplicación (mostrado en el lanzador)
- Pasar objetos que extienden una clase abstracta entre actividades
- En evento de zoom para google maps en android
- Acceso a R.java desde diferentes paquetes
- Android: No se puede saber cómo usar setImeActionLabel
Servicios de backgroud java:
package cz.oznameni; public class Backgroundoznameni extends Service { }
- Array de escritura en Firebase android
- Eliminar todas las clases no utilizadas, métodos del proyecto de Android Studio
- Android Spinner - ¿Cómo eliminar los botones de radio?
- Variable no final dentro de una clase interna
- SurfaceView for Camera Preview no se destruye cuando se pulsa el botón de encendido
- Encadenar dos observables de adaptación con RxJava
- Cómo manejar el retrato de Android y el paisaje en el código?
- Convertir un entero en una cadena sin asignar memoria
He hecho un cambio, por lo que debería acceder convenientemente al valor guardado.
Por favor, reinstale primero el complemento:
cordova plugin remove cordova-plugin-nativestorage cordova plugin add https://github.com/TheCocoaProject/cordova-plugin-nativestorage
Esto instalará la versión dev. Esto porque este código actualizado no se envía a NPM ( UPDATE : ahora no es necesario usar la versión dev, la versión en NPM está bien).
Para recuperar el valor con una clave, he escrito el siguiente método:
String getValue(Context context, String key, String defaultValue) { SharedPreferences settings = context.getSharedPreferences(PREFS_NAME, Activity.MODE_PRIVATE); return settings.getString(key, defaultValue); }
El PREFS_NAME
debe declararse como sigue:
public static final String PREFS_NAME = "NativeStorage";
El contexto debe ser this
accesible dentro del método onCreate
.
Así que en general debería verse algo como esto:
public class Backgroundoznameni extends Service { public static final String PREFS_NAME = "NativeStorage"; @Override public void onCreate() { String value = getValue(Backgroundoznameni.this, "somekey", null); } String getValue(Context context, String key, String defaultValue) { SharedPreferences settings = context.getSharedPreferences(PREFS_NAME, Activity.MODE_PRIVATE); return settings.getString(key, defaultValue); } }
NOTA: Código no probado!
EDIT: Esto está documentado en esta edición de Github .
- Traducción no captada SimException: dx.rop.cst.CstInterfaceMethodRef no se puede convertir en com.android.dx.rop.cst.CstMethodRef (Proguard)
- Cómo incrementar el campo en la base de datos sqlite android