在開發windows phone 的時候我們一般都要保存用戶端登陸信息,就像在做網頁的時候,用session保存用戶的登陸狀態一個月,兩個月,我們現在在做的是隻要軟件沒有卸載,那麼用戶的用戶名和密碼會一直存在着,你下次進入軟件的時候不用登陸了,這樣大大的增加了用戶的體驗。廢話不多說,來說下怎麼做這個問題吧。
操作流程:
第一步:
在App.xaml.cs 中定義兩個方法(要先添加引用using System.IO.IsolatedStorage;)
private void LoadState()
{
PhoneApplicationService phoneAppServeice = PhoneApplicationService.Current;
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
string StudentName;
if (settings.TryGetValue<string>("StudentName", out StudentName))
{
phoneAppServeice.State["StudentName"] = StudentName;
}
}
private void SaveState()
{
PhoneApplicationService phoneappserveice= PhoneApplicationService.Current;
IsolatedStorageSettings settings=IsolatedStorageSettings.ApplicationSettings;
if (phoneappserveice.State.ContainsKey("StudentName"))
{
settings["StudentName"] = phoneappserveice.State["StudentName"];
}
}
第二步
在頁面自帶的事件中調用這兩個方法
// 應用程序啓動(例如,從“開始”菜單啓動)時執行的代碼
// 此代碼在重新激活應用程序時不執行
private void Application_Launching(object sender, LaunchingEventArgs e)
{
LoadState();
}
// 激活應用程序(置於前臺)時執行的代碼
// 此代碼在首次啓動應用程序時不執行
private void Application_Activated(object sender, ActivatedEventArgs e)
{
LoadState();
}
// 停用應用程序(發送到後臺)時執行的代碼
// 此代碼在應用程序關閉時不執行
private void Application_Deactivated(object sender, DeactivatedEventArgs e)
{
SaveState();
}
// 應用程序關閉(例如,用戶點擊“後退”)時執行的代碼
// 此代碼在停用應用程序時不執行
private void Application_Closing(object sender, ClosingEventArgs e)
{
SaveState();
}
第三步
在用戶登錄的時候保存用戶的信息
void login_loginCompleted(object sender, ServiceReference1.loginCompletedEventArgs e)
{
if (e.Result == true)
{
//這裏是登陸成功
phoneappserveice.State["StudentName"] = txtName.Text.ToString();
//登陸成功返回到上一個頁面
MessageBox.Show("登錄成功");
NavigationService.GoBack();
}
else
{
//這裏是登陸失敗
MessageBox.Show("用戶名或密碼錯誤");
}
}
第四步:讀取用戶的信息
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
//頁面加載的時候
if (phoneappserveice.State["StudentName"] != null)
{
StudentName.Text = phoneappserveice.State["StudentName"].ToString();
}
}
就這樣就可以了。
在這裏附加幾張效果圖