2016-09-08 87 views
2

我正在開發一個客戶端應用程序Xamarin.Forms(Android,iOS和Windows Phone),它將聯繫服務器以獲取用戶數據。在這個應用程序中,我需要存儲用戶設置,如用戶首選項,服務器URL,用戶名,身份驗證令牌。 。 。等存儲Xamarin應用程序用戶設置的最佳方法是什麼?

任何人都可以建議我一個標準最好方式來存儲應用程序的用戶設置?

在此先感謝。

回答

2

根據需要使用SettingsPlugin來存儲用戶設置。這將有助於從所有移動應用的共享代碼訪問設置。

下面的代碼:

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

您可以使用由Xamarin開發組作爲一個插件跨平臺Settings API

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); } 
    } 
} 

按照上面的鏈接,如何添加更多的相關信息打包到你的解決方案。

-1

在我看來會是SQLite,創建用戶設置表。 SQLite保持手機像.txt文件。您還可以爲其他功能添加更多表格。

您可以隨時通過設置創建配置文件並重新加載。

+0

SQLite超過'NSUserDefaults'和'SharedPreferences'的好處是什麼?對於已經很容易在操作系統中使用的東西來說,這似乎是一個沉重的解決方案,但是我可以忽略一些好處。 – dylansturg

+0

@dylansturg對於大多數設置,'NSUserDefaults'和'SharedPreferences'是要走的路,但對於你所期望的,在關係數據庫中可以更好地工作,並且可能有多行,對於SQLite更好。例如,存儲單個身份驗證令牌可以在'NSUserDefaults'和'SharedPreferences'中使用,但是如果稍後必須存儲多個身份驗證令牌,那麼使用SQLite表可能更有意義(儘管我仍然會使用設置可能存儲3個或更少的令牌,但那只是我的偏好)。 – hvaughan3

+0

我會勸阻任何選項認證令牌 - 你想以安全的方式存儲這些(比如說'KeyChain')。我明白你的意思是可能有「多個值」,但我從來沒有看到過我的應用程序設置完全相關的情況,或者我需要同一設置的多個值的情況。即使在你的場景中,你想區分不同的標記 - 它們不可互換 - 所以只需將它們存儲在不同的鍵上即可。不過,要記住這一點。 – dylansturg

相關問題