2016-09-08 3 views
2

Ich entwickle eine Client-Anwendung in Xamarin.Forms (Android, iOS und Windows Phone), die den Server kontaktieren wird, um die Benutzerdaten zu erhalten. In dieser Anwendung muss ich die Benutzereinstellungen wie Benutzereinstellungen, Server-URL, Benutzername, Authentifizierungstoken speichern. . .Beste Möglichkeit zum Speichern der Benutzereinstellungen für Xamarin Application?

usw.

Kann jemand empfehlen, mir einen Standard und besten Weg, um die Anwendung von Benutzereinstellungen zu speichern?

Vielen Dank im Voraus.

Antwort

2

Verwenden Sie SettingsPlugin, um die Benutzereinstellungen wie gewünscht zu speichern. Auf diese Weise können Sie auf Einstellungen aus gemeinsam genutztem Code für alle Ihre mobilen Apps zugreifen.

Der folgende Code:

public class AppPreferences 
{ 
    static ISettings AppSettings => CrossSettings.Current; 

    public static string UserName 
    { 
     get { return AppSettings.GetValueOrDefault<string>(UserNameKey, UserNameDefault); } 
     set { AppSettings.AddOrUpdateValue<string>(UserNameKey, value); } 
    } 
} 

den Link oben für weitere Informationen folgen, wie dies fügen:

public static class Settings 
{ 

    private static ISettings AppSettings 
    { 
     get 
     { 
      return CrossSettings.Current; 
     } 
    } 

    //Setting Constants 

    const string UserName = "username"; 
    private static readonly string UserNameDefault = string.Empty; 

    public static string UserName 
    { 
     get { return AppSettings.GetValueOrDefault<string>(UserName, UserNameDefault); } 
     set { AppSettings.AddOrUpdateValue<string>(UserName, value); } 
    } 
} 
0

können Sie den Cross Platform Settings API durch das Xamarin-Team als Plugin entwickelt verwenden Paket zu Ihrer Lösung.

-1

Meiner Meinung nach wird SQLite, Tabelle mit Benutzereinstellung erstellen. SQLite ist auf Telefon wie. Txt-Datei. Sie können auch weitere Tabellen für andere Funktionen hinzufügen.

Sie können Profile immer mit Einstellungen erstellen und neu laden.

+0

Was ist der Vorteil von SQLite gegenüber 'NSUserDefaults' und' SharedPreferences'? Es scheint eine schwere Lösung für etwas zu sein, das bereits im Betriebssystem einfach zu verwenden ist, aber es könnte einige Vorteile geben, die ich übersehen habe. – dylansturg

+0

@dylansturg Für die meisten Einstellungen, 'NSUserDefaults' und' SharedPreferences' ist der Weg zu gehen, aber für Dinge, die, wie zu erwarten, besser in einer Beziehung Datenbanken arbeiten und möglicherweise mehrere Zeilen haben, sind besser für SQLite. Beispielsweise würde das Speichern eines einzelnen Authentifizierungstokens in 'NSUserDefaults' und' SharedPreferences' funktionieren, aber wenn Sie später mehrere Authentifizierungstokens speichern müssen, ist es möglicherweise sinnvoller, eine SQLite-Tabelle zu verwenden (obwohl ich weiterhin Einstellungen für Speichern von vielleicht 3 oder weniger Tokens, aber das ist nur meine Vorliebe). – hvaughan3

+0

Ich würde beide Optionen für Authentifizierungs-Token entmutigen - Sie möchten diese auf sichere Weise speichern (sagen wir mit 'KeyChain'). Ich sehe, was Sie sagen, dass es möglich ist, "mehrere Werte" zu haben, aber ich habe nie einen Fall gesehen, in dem die Einstellungen meiner App überhaupt relational waren oder ich mehrere Werte für die gleiche Einstellung benötigte. Selbst in Ihrem Szenario möchten Sie die verschiedenen Tokens unterscheiden - sie sind nicht austauschbar -, also würde es einfach funktionieren, sie einfach auf verschiedenen Schlüsseln zu speichern. Es ist jedoch etwas zu beachten. – dylansturg

Verwandte Themen