Saltar al contenido

¿Cómo puedo guardar algunos datos de usuario localmente en mi aplicación Xamarin Forms?

Solución:

Usted tiene un par de opciones.

  1. SQLite. Esta opción es multiplataforma y funciona bien si tiene muchos datos. También obtiene la ventaja adicional de soporte de transacciones y soporte asíncrono. EDITAR: En el pasado sugerí usar SQLite.Net-PCL. Debido a problemas relacionados con el soporte de Android 7.0 (y una aparente caída del soporte), ahora recomiendo hacer uso del proyecto que originalmente se bifurcó desde: sqlite-net
  2. Almacenamiento local. Hay un gran nuget que admite el almacenamiento multiplataforma. Para obtener más información, consulte PCLStorage
  3. También hay Application.Current.Properties implementado en Xamarin.Forms que permite pares de datos simples de clave-valor.

Creo que tendrás que investigar y averiguar qué ruta se adapta mejor a tus necesidades.

En cuanto a la seguridad, eso depende de dónde coloque sus datos en cada dispositivo. Android almacena los datos de la aplicación en una carpeta segura de la aplicación de forma predeterminada (no tan segura si está rooteado). iOS tiene varias carpetas diferentes para el almacenamiento de datos según las diferentes necesidades. Leer más aquí: Almacenamiento de datos de iOS

Otra opción es el complemento de configuración de Xamarin Forms.

Por ejemplo, si necesita almacenar una instancia de usuario, simplemente serialícela en json al almacenarla y deserialícela al leerla.

Utiliza la gestión de la configuración nativa

  • Android: SharedPreferences
  • iOS: NSUserDefaults
  • Windows Phone: Configuración de almacenamiento aislada
  • Windows RT / UWP: ApplicationDataContainer

      public User CurrentUser
      {
         get
         {
            User user = null;
            var serializedUser = CrossSettings.Current.GetValueOrDefault<string>(UserKey);
            if (serializedUser != null)
            {
               user = JsonConvert.DeserializeObject<User>(serializedUser);
            }
    
            return user;
         }
         set
         {
            CrossSettings.Current.AddOrUpdateValue(UserKey, JsonConvert.SerializeObject(value));
         }
      }
    

EDITAR: Hay una nueva solución para esto. Simplemente use Xamarin.Essentials.

Preferences.Set(UserKey, JsonConvert.SerializeObject(value));
var user= JsonConvert.DeserializeObject<User>(Preferences.Get(UserKey, "default_value");

Por favor use Xamarin.Essentials

La clase Preferences ayuda a almacenar las preferencias de la aplicación en un almacén de clave / valor.

Para guardar un valor:

Preferences.Set("my_key", "my_value");

Para obtener un valor:

var myValue = Preferences.Get("my_key", "default_value");
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *