Xamarin.forms 如何像浏览器一样自动保存用户名
Xamarin.forms how to auto save user name like browser
我正在使用 Xamarin.Forms
开发移动应用程序
我有以下主页包含登录信息:
我们如何让应用程序自动保存用户名,以便他们不必每次都输入(如在浏览器中)?
答案很简单:坚持。服务器通过设置包含他们希望您在呈现表单字段时看到的数据(或对它的引用)的 cookie 来做到这一点。
为了在应用程序(例如使用 Xamarin)中执行此操作,您需要将用户数据存储到某个文件或数据库中。由于您使用的是 Xamarin,因此您可能可以使用某种 ConfigurationManager
来跟踪这一点。
显然,您可以在您的应用程序的本地存储中创建一个配置文件(我认为您不需要在其中创建文件的权限 space)。
当您将信息存储在某处后,只需检索它并为其设置输入值。
您可以在 Xamarin.Forms Application
class 中使用 Properties
词典。并让 Xamarin.Forms
框架处理应用程序重启和 pausing/resuming 您的应用程序之间的持久用户名。
通过将用户名写入 Properties
字典来保存用户名
var properties = Xamarin.Forms.App.Current.Properties;
if(!properties.ContainsKey("username")
{
properties.Add("username", username);
}
else
{
properties["username"] = username;
}
然后,当您的登录屏幕即将出现时(例如在 OnAppearing
方法中)检查 Properties
用户名:
var properties = Xamarin.Forms.App.Current.Properties;
if(properties.ContainsKey("username")
{
var savedUsername = (string)properties["username"];
}
如果不存在,则表示这是用户首次登录您的应用程序。
几天前有人提出了一个非常相似的问题 - 我对那个问题的回答也适用于你的问题:
本质上,您想使用本机设置功能存储信息。我建议 反对 现在使用 Application.Properties
。它目前在 Android 上不可靠,过去也有其他问题。我的链接答案中引用的 nuget 包是一种更好的方法,将来会让您省去一些麻烦。
正确的方法是通过App设置插件
https://github.com/jamesmontemagno/Xamarin.Plugins/tree/master/Settings
我在申请中所做的是。
1) 从 nuget
安装 Plugin.Settings
2)添加到Helpers->Settings.cs(插件自动生成的文件)以下
public static class Settings
{
private static ISettings AppSettings
{
get { return CrossSettings.Current; }
}
private const string UserNameKey = "username_key";
private static readonly string UserNameDefault = "demo";
public static string UserName
{
get { return AppSettings.GetValueOrDefault<string>(UserNameKey, UserNameDefault); }
set { AppSettings.AddOrUpdateValue<string>(UserNameKey, value); }
}
}
3)为了在Application Context中保留用户名设置
Settings.UserName = ViewModel.Username;
4)当您登录屏幕启动时
string username = Settings.UserName;
我正在使用 Xamarin.Forms
开发移动应用程序我有以下主页包含登录信息:
我们如何让应用程序自动保存用户名,以便他们不必每次都输入(如在浏览器中)?
答案很简单:坚持。服务器通过设置包含他们希望您在呈现表单字段时看到的数据(或对它的引用)的 cookie 来做到这一点。
为了在应用程序(例如使用 Xamarin)中执行此操作,您需要将用户数据存储到某个文件或数据库中。由于您使用的是 Xamarin,因此您可能可以使用某种 ConfigurationManager
来跟踪这一点。
显然,您可以在您的应用程序的本地存储中创建一个配置文件(我认为您不需要在其中创建文件的权限 space)。
当您将信息存储在某处后,只需检索它并为其设置输入值。
您可以在 Xamarin.Forms Application
class 中使用 Properties
词典。并让 Xamarin.Forms
框架处理应用程序重启和 pausing/resuming 您的应用程序之间的持久用户名。
通过将用户名写入 Properties
字典来保存用户名
var properties = Xamarin.Forms.App.Current.Properties;
if(!properties.ContainsKey("username")
{
properties.Add("username", username);
}
else
{
properties["username"] = username;
}
然后,当您的登录屏幕即将出现时(例如在 OnAppearing
方法中)检查 Properties
用户名:
var properties = Xamarin.Forms.App.Current.Properties;
if(properties.ContainsKey("username")
{
var savedUsername = (string)properties["username"];
}
如果不存在,则表示这是用户首次登录您的应用程序。
几天前有人提出了一个非常相似的问题 - 我对那个问题的回答也适用于你的问题:
本质上,您想使用本机设置功能存储信息。我建议 反对 现在使用 Application.Properties
。它目前在 Android 上不可靠,过去也有其他问题。我的链接答案中引用的 nuget 包是一种更好的方法,将来会让您省去一些麻烦。
正确的方法是通过App设置插件 https://github.com/jamesmontemagno/Xamarin.Plugins/tree/master/Settings
我在申请中所做的是。
1) 从 nuget
安装 Plugin.Settings2)添加到Helpers->Settings.cs(插件自动生成的文件)以下
public static class Settings
{
private static ISettings AppSettings
{
get { return CrossSettings.Current; }
}
private const string UserNameKey = "username_key";
private static readonly string UserNameDefault = "demo";
public static string UserName
{
get { return AppSettings.GetValueOrDefault<string>(UserNameKey, UserNameDefault); }
set { AppSettings.AddOrUpdateValue<string>(UserNameKey, value); }
}
}
3)为了在Application Context中保留用户名设置
Settings.UserName = ViewModel.Username;
4)当您登录屏幕启动时
string username = Settings.UserName;