如果本地存储中有令牌,我想跳过登录页面,但我不想将逻辑移到App
,因为我希望LoginPage
保留我的基础页。
目前,我有这个代码,它可以工作。
public LoginPage()
{
InitializeComponent();
}
protected override void OnAppearing()
{
var localStorage = new LocalStorage();
if (!string.IsNullOrEmpty(localStorage.Get("key")))
{
Navigation.PushAsync(new MainTabbedPage(true));
}
base.OnAppearing();
// some unrelated code...
}
问题在于,有时(经常),登录页面会在几分之一秒内可见,直到导航到MainTabbedPage
。我可以将OnAppearing
的导航代码放到页面构造函数中吗?如果是,我应该在InitializeComponent();
之前或之后提出它吗?请注意,在应用程序中的某个时间,我可能会调用PopToRootAsync()
以返回登录页面,这次,我可能想要显示。
另外,请告诉我这种方法是否有问题。
提前致谢。
答案 0 :(得分:2)
我强烈建议您创建一个启动画面。这样,您可以在下一个屏幕显示和执行任务之前获得最短时间。当启动画面可见时,检查用户令牌是否有效,然后继续显示登录屏幕或您要显示的任何屏幕。 如果您需要进一步的帮助,请告诉我。