我正在開發一個客戶端應用程序Xamarin.Forms(Android,iOS和Windows Phone),它將聯繫服務器以獲取用戶數據。在這個應用程序中,我需要存儲用戶設置,如用戶首選項,服務器URL,用戶名,身份驗證令牌。 。 。等存儲Xamarin應用程序用戶設置的最佳方法是什麼?
任何人都可以建議我一個標準和最好方式來存儲應用程序的用戶設置?
在此先感謝。
我正在開發一個客戶端應用程序Xamarin.Forms(Android,iOS和Windows Phone),它將聯繫服務器以獲取用戶數據。在這個應用程序中,我需要存儲用戶設置,如用戶首選項,服務器URL,用戶名,身份驗證令牌。 。 。等存儲Xamarin應用程序用戶設置的最佳方法是什麼?
任何人都可以建議我一個標準和最好方式來存儲應用程序的用戶設置?
在此先感謝。
根據需要使用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); }
}
}
您可以使用由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); }
}
}
按照上面的鏈接,如何添加更多的相關信息打包到你的解決方案。
在我看來會是SQLite,創建用戶設置表。 SQLite保持手機像.txt文件。您還可以爲其他功能添加更多表格。
您可以隨時通過設置創建配置文件並重新加載。
SQLite超過'NSUserDefaults'和'SharedPreferences'的好處是什麼?對於已經很容易在操作系統中使用的東西來說,這似乎是一個沉重的解決方案,但是我可以忽略一些好處。 – dylansturg
@dylansturg對於大多數設置,'NSUserDefaults'和'SharedPreferences'是要走的路,但對於你所期望的,在關係數據庫中可以更好地工作,並且可能有多行,對於SQLite更好。例如,存儲單個身份驗證令牌可以在'NSUserDefaults'和'SharedPreferences'中使用,但是如果稍後必須存儲多個身份驗證令牌,那麼使用SQLite表可能更有意義(儘管我仍然會使用設置可能存儲3個或更少的令牌,但那只是我的偏好)。 – hvaughan3
我會勸阻任何選項認證令牌 - 你想以安全的方式存儲這些(比如說'KeyChain')。我明白你的意思是可能有「多個值」,但我從來沒有看到過我的應用程序設置完全相關的情況,或者我需要同一設置的多個值的情況。即使在你的場景中,你想區分不同的標記 - 它們不可互換 - 所以只需將它們存儲在不同的鍵上即可。不過,要記住這一點。 – dylansturg