直接导航到应用程序而无需再次登录Windows Phone?

时间:2014-06-13 08:42:06

标签: c# windows-phone-7 windows-phone-8 login windows-phone

我有一个WP8音乐应用程序,用户可以通过他的手机号码或他/她的电子邮件地址首次登录。

我不希望用户在登录时再次输入登录详细信息。

如果用户已在该设备中登录,我需要让用户直接导航到应用程序的主页?

主页的意思是,我想在splash screen出现后立即转到主页面?我该如何操纵splash screen?我的意思是如果用户第一次运行应用程序我应该将他带到注册页面,如果用户已经登录,则应直接进入应用程序的主页面。

提前致谢。

1 个答案:

答案 0 :(得分:3)

我们可以通过以下步骤完成此操作:

1.当用户第一次登录时,您在IsolatedStorage中保存userInfo

2.当用户再次启动应用时,您可以从IsolatedStorage 获取userInfo 检查userInfo是否存在。在App.xaml.cs中为RootFrame添加导航

private void InitializePhoneApplication()
{
    if (phoneApplicationInitialized)
        return;
    RootFrame = new TransitionFrame();
    RootFrame.Navigated += CompleteInitializePhoneApplication;

    RootFrame.NavigationFailed += RootFrame_NavigationFailed;
    RootFrame.Navigating += new NavigatingCancelEventHandler(RootFrame_Navigating);//Add Navigating
    phoneApplicationInitialized = true;
}

并且RootFrame_Navigating就在这里,当应用启动时,它将导航到 Login.xaml 。我们应该使用 userIsValid (检查用户是否有效)。如果有效,我们应该更改导航到 MainPage (我们的主页):

void RootFrame_Navigating(object sender, NavigatingCancelEventArgs e)
{
    if (e.Uri.ToString().Contains("Login.xaml"))
    {
       if (userIsValid)
       {
             e.Cancel = true; //cancel it.
             string uriString = "/MainPage.xaml";
             var ur = new Uri(uriString, UriKind.Relative);
             RootFrame.Dispatcher.BeginInvoke(delegate
             {
                 this.RootFrame.Navigate(ur);
             });
        }
    }
}
相关问题