web-dev-qa-db-fra.com

Comment puis-je sauvegarder certaines données utilisateur localement sur mon application Xamarin Forms?

J'ai une application Xamarin Forms simple. J'ai maintenant un objet simple POCO (par exemple. User instance ou une liste des tweets ou ordres les plus récents ou autre).

Comment puis-je stocker cet objet localement sur le périphérique? Imaginons que je le sérialise en JSON.

Aussi, dans quelle mesure ces données sont-elles sécurisées? Cela fait-il partie des porte-clés, etc.? Auto sauvegardé?

à votre santé!

42
Pure.Krome

Vous avez plusieurs options.

  1. SQLite. Cette option est multi-plateforme et fonctionne bien si vous avez beaucoup de données. Vous bénéficiez également du bonus de support de transaction et de support asynchrone. [~ # ~] éditer [~ # ~] : Auparavant, j'avais suggéré d'utiliser SQLite.Net-PCL . En raison de problèmes impliquant Android 7.0 support (et un support apparent du support)), je recommande maintenant d'utiliser le projet qui a été créé à partir de: sqlite -net
  2. Stockage local. Il existe une excellente pépite qui prend en charge le stockage multiplateforme. Pour plus d'informations, voir PCLStorage
  3. Il existe également Application.Current.Properties implémenté dans Xamarin.Forms qui permet des paires de données clé-valeur simples.

Je pense que vous devrez enquêter et trouver quel itinéraire répond le mieux à vos besoins.

En ce qui concerne la sécurité, cela dépend de l'endroit où vous placez vos données sur chaque appareil. Android stocke les données de l'application dans un dossier d'application sécurisé par défaut (pas si sécurisé que si vous êtes enraciné). IOS dispose de plusieurs dossiers différents pour le stockage de données en fonction de besoins différents. Pour en savoir plus, consultez: - Stockage de données iOS

71
Will Decker

Une autre option est le plugin de paramètres de formulaires xamarin https://github.com/jamesmontemagno/SettingsPlugin . Si vous avez besoin de stocker, par exemple instance utilisateur, il suffit de le sérialiser sur json lors du stockage et le désérialiser lors de la lecture.

Utilise la gestion des paramètres natifs

  • Android: Préférences partagées
  • iOS: NSUserDefaults
  • Windows Phone: IsolatedStorageSettings
  • 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));
         }
      }
    
19
puko

Veuillez utiliser Xamarin.Essentials

La classe Préférences permet de stocker les préférences d’application dans un magasin de clés/valeurs.

Pour enregistrer une valeur:

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

Pour obtenir une valeur:

var myValue = Preferences.Get("my_key", "default_value");
6
chunhunghan