PrismLibrary / Prism

Prism is a framework for building loosely coupled, maintainable, and testable XAML applications in WPF, Xamarin Forms, and Uno / Win UI Applications..

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Enhancement] GetNavigationUriPath For Maui

Axemasta opened this issue · comments

Summary

In Prism Forms we had the extension method GetNavigationUriPath, which when called would give you the current Uri of the INavigationService. In maui this extension no longer exists and reading the current Uri from a Viewmodel is incredibly difficult. We can observe the current Uri using the global navigation observer, however performing viewmodel based logic on the current Uri path is difficult.

API Changes

Add a new INavigationServiceExtension method named GetNavigationUriPath

Intended Use Case

Performing logic in a view model based on the page uri stack. For example we could have a Login page which can be accessed in multiple ways:

  1. Open app for the first time, see a welcome flow & agree to privacy policy, complete flow and show login page. For this scneario we want to show a back button to go back into the privacy flow
  2. Open app after agreeing to privacy, go directly to the login page. In this case we don't want to show a back button because we are at the bottom of our navigation stack.

Hello @Axemasta I am also facing this issue when I am migration Xamarin.Forms application to MAUI. Please let me know if you have any workaround to get NavigationStack in MAUI then please share. will be really appreciated. Thanks.

@NiranjanXamarin
you can use IPageAccessor to get the NavigationStack

codes like this:

public XXXViewModel(IPageAccessor pageAccessor){
  var nvStack = pageAccessor.Page.Navigation.NavigationStack;
}

@maonaoda thanks alot. You saved my time. Appreciated