如果用户数据保存在Isolatedstorage中,如何跳过登录页面

时间:2013-05-13 13:54:02

标签: c# windows-phone-8

我正在开发一款需要登录的Windows Phone 8应用程序。

当用户第一次打开应用程序并登录并将其数据保存在隔离存储中时,下次启动应用程序时,我会检查其在隔离存储中的ID并尝试导航到主页跳过登录页面,但它无法正常工作。

以下是登录页面中的代码:

public MainPage()
{
    IsolatedStorageSettings WasalnySettings = IsolatedStorageSettings.ApplicationSettings;
    if (WasalnySettings.Contains("CurrentUserGUID"))
    {
        string mydata = (string)WasalnySettings["CurrentUserGUID"];
        NavigationService.Navigate(new Uri("/Home.xaml", UriKind.Relative));
    }

    InitializeComponent();
}

3 个答案:

答案 0 :(得分:1)

我认为问题是主页尚未加载,因为您的调用是在构造函数中,因此它还没有加载。尝试处理Loaded事件并将Navigate电话放在那里:

public MainPage()
{
    InitializeComponent();

    // Assign the handler:
    MainPage.Loaded += CheckLogin;
}

void CheckLogin(object sender, EventArgs e)
{
    // at this point, the page has been fully loaded:        
    IsolatedStorageSettings WasalnySettings = IsolatedStorageSettings.ApplicationSettings;
    if (WasalnySettings.Contains("CurrentUserGUID"))
    {
        string mydata = (string)WasalnySettings["CurrentUserGUID"];
        NavigationService.Navigate(new Uri("/Home.xaml", UriKind.Relative));
    }
}

在此处找到:Object reference error in NavigationService.Navigate

答案 1 :(得分:1)

实际上,当我在“onNavigatedTo”事件处理程序中编写导航行时,它有效吗

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    // at this point, the page has been fully loaded:        
    IsolatedStorageSettings WasalnySettings = IsolatedStorageSettings.ApplicationSettings;
    if (WasalnySettings.Contains("CurrentUserGUID"))
    {
        string mydata = (string)WasalnySettings["CurrentUserGUID"];
        NavigationService.Navigate(new Uri("/Home.xaml", UriKind.Relative));
    }
}

答案 2 :(得分:0)

例如,您可以使用UriMapper。 检查此article 希望这会有所帮助。