【发布时间】:2019-05-14 07:41:47
【问题描述】:
我正在 Xamarin.Forms 中开发一个应用程序,在我登录到我的应用程序时尝试将主详细信息页面变成我的 MainPage 之前,我已经实现了这一点。现在我有一个问题,当我使用手机后面的按钮时,我的应用程序是 miimiza 并进入后台,这是我希望的行为,但是当我返回我的应用程序时不会继续显示我的主详细信息页面,而是返回到我的登录页面。
好像我的应用程序运行了两次,或者至少同时存在两个 LoginPage 实例,这是因为在我的 LoginPage 中,我根据我的页面正在通过 MessaginCenter 侦听的一些消息触发了一些 DisplayAlert 和他们是他们射击两次。
有人可以告诉我如何在主详细信息页面上将其返回到我的应用程序,而不是以所述的奇怪方式重新启动吗?
LoginView.xaml.cs:
public partial class LogonView : ContentPage
{
LogonViewModel contexto = new LogonViewModel();
public LogonView ()
{
InitializeComponent ();
BindingContext = contexto;
MessagingCenter.Subscribe<LogonViewModel>(this, "ErrorCredentials", async (sender) =>
{
await DisplayAlert("Error", "Email or password is incorrect.", "Ok");
}
);
}
protected override void OnDisappearing()
{
base.OnDisappearing();
MessagingCenter.Unsubscribe<LogonViewModel>(this, "ErrorCredentials");
}
}
我的 ViewModel 的一部分:
if (Loged)
{
App.token = token;
Application.Current.MainPage = new RootView();
}
else
{
MessagingCenter.Send(this, "ErrorCredentials");
}
谢谢。
【问题讨论】:
-
登录后,您是否将凭据保存在应用程序属性中?然后在 App 开始使用该属性并检查用户是否有效。如果有效,则重定向到主详细信息页面。如果不重定向到登录。
-
你能解释一下你的答案吗?在应用程序的属性中,我保留令牌以验证未来对 API 的调用。
-
当然。您能分享您尝试过的代码吗?
-
我已经用我的部分代码更新了我的问题。
-
@lavilaso 您能否详细说明您的问题,因为尚不完全清楚您要迭代什么?它在 Android/iOS/两者上吗?您按下哪个按钮将其带到后台?您的应用程序在进入后台时是否被杀死?
标签: mvvm xamarin.forms