Перейдите непосредственно в приложение без повторного входа в Windows Phone?
У меня есть музыкальное приложение WP8, в котором пользователь может впервые войти в систему по номеру своего мобильного телефона или по адресу электронной почты.
Я не хочу, чтобы пользователь вводил данные для входа еще раз, когда он / она входит в систему.
Что мне нужно, чтобы позволить пользователю непосредственно перейти на домашнюю страницу приложения, если пользователь уже вошел в систему на этом устройстве?
Что я имел в виду под домашней страницей, я хотел перейти на главную страницу сразу после splash screen
появляется? Как я могу манипулировать splash screen
? Я имею в виду, что если пользователь запускает приложение в первый раз, я должен отвести его на страницу регистрации, если пользователь уже вошел в систему, следует перейти непосредственно на главную страницу приложения.
Заранее спасибо.
1 ответ
Мы можем сделать это с помощью этих шагов:
1.При первом входе в систему вы сохраняете userInfo в своем изолированном хранилище.
2. Когда пользователь снова запустит приложение, вы можете получить userInfo из IsolatedStorage и проверить, существует ли userInfo. Добавьте навигацию для RootFrame в App.xaml.cs.
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);
});
}
}
}