Переход на страницу входа в систему при каждом запуске приложения: каждый раз, когда пользователь запускает приложение, он должен перейти к LoginPage независимо от какой-либо предыдущей истории навигации.
Правильная функциональность панели вкладок: после входа в систему панель вкладок должна работать правильно, отображая правильное содержимое для каждой вкладки.
Проблема:
Чтобы выполнить первое требование, я настраиваю MainPage на новый экземпляр AppShell после входа в систему. Однако этот подход вызывает несколько проблем:
Проблема с белым экраном: после первого входа в систему перед переходом на нужную страницу на короткое время появляется белый экран. Последующие мерцания навигации. Во время дальнейшей навигации короткие белые вспышки ухудшают работу пользователя.
Код: Выделить всё
Код: Выделить всё
[RelayCommand]
private async Task Login()
{
try
{
// Authentication
await Shell.Current.DisplayAlert("Success", "Success", "OK")
Application.Current.MainPage = new AppShell();
await Shell.Current.GoToAsync(nameof(NotificationPage));
}
catch (Exception ex)
{
await Shell.Current.DisplayAlert("Error", $"{ex.Message}", "ОК");
}
}
Установка MainPage для нового экземпляра AppShell: это гарантирует сброс стека навигации, но вызывает проблему с белым экраном.
Использование индикатор загрузки и задержка: попыталась сгладить переход, но не полностью решила проблему с белым экраном.
Что мне нужно:
Я хочу быть уверенным в этом каждый раз приложение запускается, оно переходит к странице входа в систему и правильно функционирует TabBar, не отображая белый экран и не вызывая мерцания во время навигации. Как я могу добиться этого в приложении MAUI?
Подробнее здесь: https://stackoverflow.com/questions/786 ... onality-in