打开页面不返回或关闭
Open page without back or close
我想在成功登录后将用户重定向到主页,所以我不希望他有后退按钮或能够再次进入登录页面。
我已将用户重定向到登录页面,内容如下:
if (isAuthenticated)
{
MainPage = new General.Pages.MainPage();
}
else
{
MainPage = new Account.Pages.Login();
}
我正在使用此代码成功登录,但它不起作用并出现异常:
await Navigation.PopAsync(false);
await Navigation.PushAsync(new General.Pages.MainPage());
给定的异常是:
System.InvalidOperationException: PopAsync is not supported globally on Android, please use a NavigationPage.
不用说提到的 NavigationPage
也不起作用。
我刚弄明白,您可以随时使用此代码更改 MainPage
:
App.Current.MainPage = new General.Pages.MainPage();
我把这个 post 留下来,如果它可以帮助其他用户的话。
var firstPage = isAuthenticated ? new General.Pages.MainPage() : new Account.Pages.Login();
MainPage = new NavigationPage(firstPage);
如果您将使用
mentioned NavigationPage
正确地,PopAsync
会起作用。
有 2 种方法可以解决这个问题。
最初在App.cs的构造函数中设置你App.MainPage
作为你的主页。然后在您主页的 OnAppearing
事件中,或者如果它有一个 ViewModel,那么它的 Initialising 方法会检查用户是否已通过身份验证。如果是,加载他的数据。如果不是,则将您的登录页面显示为模式。登录成功后,可以弹出登录页面的模态,加载首页数据。此外,如果需要,您可以处理登录页面中的后退按钮事件,以不允许用户离开模式页面。
缺点 - 在登录模式出现之前,主页会显示一秒钟。
在 App.cs 的构造函数中检查用户是否已通过身份验证。如果用户已通过身份验证,则通过将其设置为 MainPage
来显示主页。否则将 MainPage
设置为登录页面。登录成功后再次设置 MainPage
.
缺点 - 在构造函数中检查 isAuthenticated 可能会使应用程序的初始加载看起来更慢。
而您遇到的错误是因为您没有将任何页面推送到导航堆栈中。因此你的流行音乐不会工作。
我想在成功登录后将用户重定向到主页,所以我不希望他有后退按钮或能够再次进入登录页面。
我已将用户重定向到登录页面,内容如下:
if (isAuthenticated)
{
MainPage = new General.Pages.MainPage();
}
else
{
MainPage = new Account.Pages.Login();
}
我正在使用此代码成功登录,但它不起作用并出现异常:
await Navigation.PopAsync(false);
await Navigation.PushAsync(new General.Pages.MainPage());
给定的异常是:
System.InvalidOperationException: PopAsync is not supported globally on Android, please use a NavigationPage.
不用说提到的 NavigationPage
也不起作用。
我刚弄明白,您可以随时使用此代码更改 MainPage
:
App.Current.MainPage = new General.Pages.MainPage();
我把这个 post 留下来,如果它可以帮助其他用户的话。
var firstPage = isAuthenticated ? new General.Pages.MainPage() : new Account.Pages.Login();
MainPage = new NavigationPage(firstPage);
如果您将使用
mentioned
NavigationPage
正确地,PopAsync
会起作用。
有 2 种方法可以解决这个问题。
最初在App.cs的构造函数中设置你
App.MainPage
作为你的主页。然后在您主页的OnAppearing
事件中,或者如果它有一个 ViewModel,那么它的 Initialising 方法会检查用户是否已通过身份验证。如果是,加载他的数据。如果不是,则将您的登录页面显示为模式。登录成功后,可以弹出登录页面的模态,加载首页数据。此外,如果需要,您可以处理登录页面中的后退按钮事件,以不允许用户离开模式页面。 缺点 - 在登录模式出现之前,主页会显示一秒钟。在 App.cs 的构造函数中检查用户是否已通过身份验证。如果用户已通过身份验证,则通过将其设置为
MainPage
来显示主页。否则将MainPage
设置为登录页面。登录成功后再次设置MainPage
.
缺点 - 在构造函数中检查 isAuthenticated 可能会使应用程序的初始加载看起来更慢。
而您遇到的错误是因为您没有将任何页面推送到导航堆栈中。因此你的流行音乐不会工作。