Xamarin Forms - сохранение и получение стека навигации Prism с помощью ViewModels - PullRequest
1 голос
/ 08 июля 2019

Я внедряю мобильное приложение Xamarin Forms, используя Prism для навигации.

Есть ли способ получить полный стек навигации вместе с моделями просмотра из Prism?

Требуется следующее:если пользователь находится в середине рабочего процесса и приложение закрыто, пользователь должен иметь возможность продолжить рабочий процесс при запуске нового сеанса.

Поэтому я пытаюсь периодически сохранять весь стек навигации вбаза данных.

1 Ответ

0 голосов
/ 09 июля 2019

Prism не имеет отдельного стека навигации, который он поддерживает.Вместо этого он использует встроенный стек навигации Xamarin.Forms.Если вам нужно взглянуть на реальный стек навигации, то вы можете сделать это из кода страницы.Если все, что вам нужно, это получить текущий путь URI текущей страницы, вы можете использовать метод GetNavigationUriPath.

public static string GetNavigationUriPath(this INavigationService navigationService)
   {
        var currentpage = ((IPageAware)navigationService).Page;

        Stack<string> stack = new Stack<string>();
        currentpage = ProcessCurrentPageNavigationPath(currentpage, stack);
        ProcessNavigationPath(currentpage, stack);

        StringBuilder sb = new StringBuilder();
        while (stack.Count > 0)
        {
            sb.Append($"/{stack.Pop()}");
        }
        return sb.ToString();
    }

https://github.com/PrismLibrary/Prism/blob/master/Source/Xamarin/Prism.Forms/Navigation/INavigationServiceExtensions.cs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...