Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Es el almacenamiento local de una aplicación Phonegap en un dispositivo Android separado del navegador incorporado?

Mi pregunta es esencialmente un seguimiento o aclaración a esta pregunta .

Tengo una aplicación de Android construida utilizando Javascript y el servicio de Adobe Phonegap Build , y estoy usando "almacenamiento local" para almacenar datos en el dispositivo.

  • Actualizar el estado seleccionado del cajón de navegación después de volver a pulsar
  • Establecer dinámicamente la altura de ViewPager
  • ¿Cómo hacer que el texto brille?
  • Cómo disminuir el relleno en NumberPicker
  • Pestañas de la barra de acción con ViewPager con el cajón de navegación
  • Establecer el ítem / id de elementos inicialmente seleccionado en BottomNavigationView
  • De esa otra pregunta, aprendí que los datos almacenados en el almacenamiento local son esencialmente "permanentes", ya que permanecerán en el dispositivo indefinidamente, a menos que el usuario actúe en él borrando manualmente la caché de la aplicación o eliminando la aplicación (y tal vez Otras circunstancias inusuales con las que estoy dispuesto a vivir).

    Sin embargo, parte de la respuesta aceptada fue confusa para mí en que comenzó a difuminar las líneas entre hablar sobre el navegador del teléfono y hablar de una aplicación Phonegap.

    Lo que no está claro para mí es si una aplicación en Android usando Phonegap utiliza la misma caché que el teléfono construido en el navegador. Phonegap es esencialmente una extensión de la facilidad de navegador existente, o es su propio navegador autónomo independiente y autónomo?

    Críticamente, si un usuario borra la caché en su navegador, ¿afectará a una aplicación instalada basada en Phonegap?

  • ¿Es posible cambiar el indicador de pestaña de la barra de acciones programáticamente?
  • ¿Cómo obtener un notificador de aplicación PERMANENTE en la barra de estado?
  • ¿Se puede usar la etiqueta de combinación con fragmentos?
  • La copia de seguridad de Adb no funciona
  • Cómo borrar la cache de volea automáticamente?
  • BitmapFactory.decodeStream falta de memoria a pesar de usar tamaño de muestra reducido
  • 4 Solutions collect form web for “¿Es el almacenamiento local de una aplicación Phonegap en un dispositivo Android separado del navegador incorporado?”

    Desde Phonegap utiliza Webiview para procesar su aplicación: WebView y Phonegap .

    Por razones de seguridad, cada aplicación que utilice WebView tiene su propio caché e historial. "Ningún Usuario u OS desea que estos datos sean accesados ​​por aplicaciones de terceros". Así que en pocas palabras, su aplicación mantendrá su propio historial y datos en su carpeta de caché y será eliminada en uno de los siguientes casos:

    • El usuario los eliminó manualmente.
    • El usuario utilizó la pantalla de configuración de la aplicación y los eliminó.
    • Aplicación desinstalada.

    Para leer más sobre esto. Vea el caché de WebView: Administración de cookies y ventanas

    Nope, la caché creada dentro del navegador en la aplicación sólo se puede eliminar con los métodos:

     window.localStorage.removeItem("key"); 

    o

     window.localStorage.clear(); 

    O la desinstalación de la aplicación

    O acción manual (borrar datos / caché) en el administrador de aplicaciones.

    Pero la mejor respuesta es hacer un experimento usted mismo y ver qué sucede.

    Sí, está separado, pero hay un momento en el que necesita pasar una variable de algún tipo al Explorador de aplicaciones. Hace que la codificación sea mucho más fácil pasar un elemento ls desde una vista web actual a otra como en iOS.

    Esto es lo que hice en PhoneGap

    Utilizo el script de ejecución InAppBrowser () para pasar una copia de las vistas de pantalla actuales localStorage a otro.

     //add the listener to detect when the page loads after inappbrowser is called into view ref.addEventListener('loadstop', function(){ ref.executeScript({code: 'SetInAppBrowserLocalStorage(\''+localStorage+'\');'}); }); 

     //In your inAppBrowser page you create a function that will get called on loadStop //This will pass "all" the contents of the main webviws localStorage to the webview //created by InAppBrowser function SetInAppBrowserLocalStorage(localStorageThatWasPassed){ localStorage = localStorageThatWasPassed; }; 

    También puede borrar el localStorage creado por SetInAppBrowserLocalStorage () antes de que el uso deje esa vista también.

    Probado y trabajando 100%:) … hágamelo saber si necesita más ayuda

    ***ACTUALIZAR*****

    Esto todavía funciona … pero no constantemente. Después de muchas pruebas, me doy cuenta de que esto simplemente no es el camino a seguir. A veces los datos simplemente no se pasan lo suficientemente rápido cuando se crea la instancia inappbrowser. Hablé con los chicos cordova a través de seguimiento de tema y me dijeron que no era una forma segura de hacer las cosas … Tengo que … pero mi respuesta a ellos era lo que si sólo quiero pasar ls variables entre páginas En mi app … que ni siquiera son accesibles desde la Internet … Sinceramente, no entiendo por qué los elementos ls no puede ser accesible a nivel mundial en la aplicación como lo es en iOS y el resto de la web. Si alguien tiene una solución mejor me encantaría saberlo.

    Haciendo este ajuste en su mainActivity (que está extendiendo Droidgap.)

      super.appView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); 

    Estamos haciendo que nuestra aplicación no almacene la memoria caché.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.